2017-06-22 6 views
1

特定の形式に基づいて結果セット内のデータをグループ化する特定のシナリオがあります。以下は私のデータの様子です。特定の形式のデータをグループ化するSQLクエリ

-------------------------------- 
    ID  Value 
-------------------------------- 
    1   2 
    2   1 
    3   1 
    4   3 
    5   1 
    6   1 
    7   6 
    8   9 
    9   1 
    10   1 

「値」列に基づいて結果セット値をグループ化する必要があります。 '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 

答えて

6

グループは、1以外の値で開始します。

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

@JamesZ実際にこのクエリを実行しようとしましたか?それは私に見える。 –

+0

@TimBiegeleisen私のコメントは、今削除されたコメントに対する回答で、これは各行に4を返すと主張しています。 –

関連する問題