2017-01-19 48 views
2

我在SQL Server數據庫中的以下表單中有一個表,該表根據id排序。在組內添加訂單並標記一行是否爲組中的最後一行

id  group 
1  10 
17  10 
24  10 
2  20 
16  20 
72  20 
104 20 
8  30 
9  30 

我想選擇根據行group分組中的每一行與以下信息添加到該表中:順序(如排序)組內是否行是該組中的最後一行。換句話說,類似這樣的東西:

id  group order last 
1  10  1  0 
17  10  2  0 
24  10  3  1 
2  20  1  0 
16  20  2  0 
72  20  3  0 
104 20  4  1 
8  30  1  0 
9  30  2  1 

我試着擺弄周圍有ROW_NUMBER,但我不是所有與SQL Server經歷,我無法得到它的工作。有沒有人有建議?

回答

4

使用ROW_NUMBER窗函數

select id,[group], 
     row_number()over(partition by [group] order by id) as [order], 
     case when row_number()over(partition by [group] order by id desc) = 1 then 1 else 0 end as Last 
From yourtable 
相關問題