SqlServer分组取一瓢和月初月末
生活随笔
收集整理的這篇文章主要介紹了
SqlServer分组取一瓢和月初月末
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
最近發現一個小問題,在以前版本大量迭代中,為了實現各種數據顯示,不得不采用分組來顯示我們想要的數據,這個數據有什么特點呢?這里大致的分兩種,第一種分組取不同數據列滿足要求;第二種分組取不同數據且列符合要求的完整數據;,這兩種都有一個共同特點:通過分組顯示不能分組的列,且保證數據正確,下面我們分別來分析。
第一種分組取不同數據列滿足要求:這一類型有一個特點,就是根據相同數據的幾列分組,顯示不同數據且符合要求的列
實現設想:這里我們通過相同數據列分組,然后對不同列取最大值或者最小值,這個可以按照自己的要求定義,我們這里用max去實現
select * from tb select name,max(years)as years from tb group by name第二種分組取不同數據且列符合要求的完整數據:有的時候我們想通過幾列分組,然后查看所有的數據
實現設想:我們先通過一個排序或者說一個規則去獲取到row_number(),然后再通過相同列獲取規則的最大row_number或者最小row_number,這時候我們要的規則數據到手,然后就是顯示所有列數據完整,通過之前的規則自關聯我們這個規則數據,就能夠獲取到我們想要的結果
select * from tb select tb3.* from (select name,min(rowId) as rowId from (select *,ROW_NUMBER()over(order by name)as rowId from tb ) as tb1 group by name) as tb2 inner join (select *,ROW_NUMBER()over(order by name)as rowId from tb)as tb3 on tb2.rowId = tb3.rowId最后總結:數據庫基礎不算多,最主要 還是靈活運用。最后送上怎么獲取當月的第一天和當月的最后一天的實現
SELECT Convert(varchar(10),dateadd(dd,-datepart(dd,getdate())+1,getdate()) ,23) as [月初]SELECT Convert(varchar(10),dateadd(day,-day(getdate()),dateadd(month,1,getdate())),23) as [月末]總結
以上是生活随笔為你收集整理的SqlServer分组取一瓢和月初月末的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 数据挖掘网上资料大全
- 下一篇: vs2013 下载