使用SQL Server获取每行的记录数

时间:2014-11-07 12:14:09

标签: sql-server

我有桌子

col1 col2
---- ---- 
a    rrr
a    fff
b    ccc
b    zzz 
b    xxx

我想要一个查询,它返回col1的出现次数,例如。

rows col1 col2
---- ---- ---- 
2    a    rrr
2    a    fff
3    b    ccc
3    b    zzz 
3    b    xxx

作为a重复2次,b重复3次。

2 个答案:

答案 0 :(得分:2)

您可以尝试Count over partition_by_clause将FROM子句生成的结果集划分为应用该函数的分区。 此函数将查询结果集的所有行视为单个组

试试这个......

select count (col1) over (partition by col1) [rows] ,col1 ,col2 from tablename 

答案 1 :(得分:1)

您可以将OVER clauseCOUNT

等聚合函数一起使用
SELECT rows = COUNT(*) OVER(PARTITION BY col1),
       col1,
       col2
FROM dbo.TableName

Demo