SQL查询以特定格式分组数据

时间:2017-06-22 14:06:10

标签: 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

我需要根据'值'对结果集值进行分组。柱。要从非第一个实例中分组的数据'直到' 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

1 个答案:

答案 0 :(得分:6)

组以非1值开头。您可以使用累积总和来定义它们:

select t.*,
       sum(case when value <> 1 then 1 else 0 end) over (order by id) as grp
from t;
相关问题