0

特定の値の発生に基づいてデータに番号を付けるのに助けが必要です。

入力を考えてみましょう

Col1    Col2
1   a
2   1
3   2
4   3
5   a
6   1
7   4
8   a
9   2
10  3

col2の「a」の出現に基づいて番号を付けたいと思います。出力は次のようになります

Col1    Col2    Result
1   a   1
2   1   1
3   2   1
4   3   1
5   a   2
6   1   2
7   4   2
8   a   3
9   2   3
10  3   3
4

3 に答える 3

1

注として、SQL Server 2012 では、累積合計でこれを行うことができます。

select col1, col2,
       sum(case when col2 = 'a' then 1 else 0 end) over (order by col1) as result
from t;

累積合計は、ウィンドウ/分析関数をサポートする他のデータベースでもサポートされています。

于 2013-08-23T11:18:59.977 に答える