Как использовать счетчик групп () в SQL Server - PullRequest
0 голосов
/ 28 июня 2018

У меня проблема с использованием команды count в SQL Server.

мои строки

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

как я могу получить этот результат?

1 Ответ

0 голосов
/ 28 июня 2018

Это проблема типа пробела и островков, которую можно решить с помощью решения 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
...