我有桌子
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次。
答案 0 :(得分:2)
您可以尝试Count over partition_by_clause
将FROM子句生成的结果集划分为应用该函数的分区。
此函数将查询结果集的所有行视为单个组
试试这个......
select count (col1) over (partition by col1) [rows] ,col1 ,col2 from tablename
答案 1 :(得分:1)
您可以将OVER
clause与COUNT
:
SELECT rows = COUNT(*) OVER(PARTITION BY col1),
col1,
col2
FROM dbo.TableName