SQL按顺序范围分组



我需要一些SQL代码才能得到这样的结果(按顺序范围分组(。我使用SQL server 2012

我的桌子:

013100      
013101
013102
013108
013203
013204
013242
013244
013243

所需结果:

013100           3
013108           1
013203           2
013242           3 

对于此版本的间隙和孤岛,可以使用值和行号的差值:

select min(code), count(*)
from (select t.*,
cast(code as int) as code_num,
row_number() over (order by code) as seqnum
from t
) t
group by (code_num - seqnum)
order by min(code);

最新更新