Pra*_*azz 1 sql sql-server group-by
我有一个特定的方案,根据特定的格式将结果集中的数据分组.以下是我的数据的样子.
--------------------------------
ID Value
--------------------------------
1 2
2 1
3 1
4 3
5 1
6 1
7 6
8 9
9 1
10 1
Run Code Online (Sandbox Code Playgroud)
我需要根据'Value'列对结果集值进行分组.要从非'1'的第一个实例到最后一个'1'的实例进行分组的数据.个人非'1'需要有自己的组值.我的预期结果应该是这样的.
------------------------------------
ID Value Group
------------------------------------
1 2 Group1
2 1 Group1
3 1 Group1
4 3 Group2
5 1 Group2
6 1 Group2
7 6 Group3
8 9 Group4
9 1 Group4
10 1 Group4
Run Code Online (Sandbox Code Playgroud)
组以非1值开头.您可以使用累积总和来定义它们:
select t.*,
sum(case when value <> 1 then 1 else 0 end) over (order by id) as grp
from t;
Run Code Online (Sandbox Code Playgroud)