Sha*_*han 3 sql database oracle gaps-and-islands
我有下表有2列
ID | Dept
1 | A
2 | A
3 | B
4 | B
5 | B
6 | A
Run Code Online (Sandbox Code Playgroud)
我想做一个计数,使输出看起来如下表所示.
Dept | Count
A | 2
B | 3
A | 1
Run Code Online (Sandbox Code Playgroud)
感谢您的帮助!
与迈克尔略有不同,同样的结果:
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;
Run Code Online (Sandbox Code Playgroud)
http://sqlfiddle.com/#!4/ff747/1