我有下表,有 2 列
ID | Dept
1 | A
2 | A
3 | B
4 | B
5 | B
6 | A
我想做一个计数,输出应该如下表所示。
Dept | Count
A | 2
B | 3
A | 1
提前感谢您的帮助!
最佳答案
与 Michael 的略有不同,结果相同:
with cte1 as (
select id,
dept,
row_number() over (partition by dept order by id) -
row_number() over (order by id) group_num
from test),
cte2 as (
select dept,
group_num,
count(*) c_star,
max(id) max_id
from cte1
group by dept,
group_num)
select dept,
c_star
from cte2
order by max_id;
关于SQL 按值的连续出现进行分组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32566685/