我需要一些SQL代码才能得到这样的结果(按顺序范围分组)。我使用SQL Server 2012
我的桌子:
013100
013101
013102
013108
013203
013204
013242
013244
013243
所需结果:
013100 3
013108 1
013203 2
013242 3
答案 0 :(得分:1)
对于此版本的空白,您可以使用值和行号之间的差值:
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);