2

我有一个有重复字段的表。我需要一个函数来计算并说出第 n 行中的重复次数。IE;

如果表格如下;

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

我正在使用 SQL Server 2010R2

任何想法都会有很大帮助..提前谢谢!!

4

1 回答 1

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
于 2012-08-02T19:26:44.003 回答