Ram*_*ani 0 sql t-sql sql-server gaps-and-islands
如果下一列的值相同的话如何分组,稍后我会计算购买需要多长时间,稍后按组添加
这是一个经典的间隙与岛屿问题。
将来,请提供文本形式的示例数据,而不是图像。
例子
with cte as (
Select *
,Grp = row_number() over (order by ID)
-row_number() over (partition by BUAH order by ID)
From YourTable
)
Select BUAH
,Cnt = sum(1)
From cte
Group By BUAH,Grp
Order By min(ID) --<< Optional
Run Code Online (Sandbox Code Playgroud)
结果
BUAH Cnt
APEL 2
TOMAT 2
APEL 3
...
Run Code Online (Sandbox Code Playgroud)