2012-08-02 43 views
2

我有一個有重複字段的表。我需要一個函數來計算並說出哪一次重複出現在第n行。即;如何將計數器添加到SQL中的循環數據集?

如果表格如下;

ID NAME CLASS 
1 Tom a 
2 Dick b 
3 Harry c 
4 Marry b 
5 Bob c 
6 Mat c 
7 Mandi a 

COUNT(class)函數可以指望有多少次已經發生的每個類值。但是我需要一個函數來輸出如下的結果;

ID NAME CLASS (I_NEED) COUNT 
1 Tom  a  1  2 
2 Dick b  1  2 
3 Harry c  1  3 
4 Marry b  2  2 
5 Bob  c  2  3 
6 Mat  c  3  3 
7 Mandi a  2  2 

我使用MSSQL SQL Server上2010R2

任何想法會在很大的幫助..在此先感謝!

回答

5

我認爲這是你在找什麼:

select id, 
     name, 
     class, 
     row_number() over (partition by class order by id) as i_need, 
     count(*) over (partition by class) as cnt 
from the_table 
order by id 
相關問題