如何在 SQL 服务器中使用 group count()

How to use group count() in SQL Server

我在 SQL 服务器中使用计数命令时遇到问题。

我的行是

ItemCode    ItemName
1           A
2           B
2           B
2           B
1           A
1           A
2           B

我需要这样的结果

Count     ItemCode    ItemName
1          1           A
3          2           B
2          1           A
1          2           B

我怎样才能得到这个结果?

这是一个间隙和孤岛类型的问题,可以使用如下 row_number 解决方案解决

working demo

; with indexedtable as
(
select *, r=row_number() over ( order by(select null)) from t
),
rownumbers as 
(
select *, r1= row_number() over (partition by ItemCode order by r) from indexedtable 
)

select count=count(r-r1),ItemCode,ItemName 
from  rownumbers 
group by ItemCode ,ItemName, r-r1