如何在 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 解决方案解决
; 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
我在 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 解决方案解决
; 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