で正しくラグ機能を使用することができません:私はこのような複数のテーブルからテーブルを作成したSQL
Week | Cid | CustId | L1
10 | 1 | 1 | 2
10 | 2 | 1 | 2
10 | 5 | 1 | 2
10 | 4 | 1 | 1
10 | 3 | 2 | 1
4 | 6 | 1 | 2
4 | 7 | 1 | 2
私はのように出力したい:
だから、Repeat
0
1
1
0
0
0
1
は、基本的に私が何をしたいです毎週、同じL1で人(クスティド)が再び入ると、列Repeat
の値は1になります。そうでなければ0(行2のように3、custid 1にL1 = 2再び、列 "繰り返し"で1を取得しますが、行4では、custid 1にはL1 = 1が付いていますので、 tは値を得る)。
ところで、テーブルは注文されていません(私が示したように)。
次のように私はそれをやろうとしている:
select t.*,
lag(0, 1, 0) over (partition by week, custid, L1 order by cid) as repeat
from
table;
をしかし、これは出力を与えていないと、空の結果を与えています。