ID Date flag_14 flag_21
1 1/1/2013 1 1
1 1/16/2013 1 0
1 1/19/2013 0 0
1 1/23/2013 0 1
1 1/26/2013 0 0
2 1/1/2013 1 1
2 1/18/2013 1 0
こんにちは、これはばかげた質問かもしれませんが、申し訳ありませんが、私は本当に助けが必要です. したがって、上記の出力を作成したいと思います。最初の 2 列は入力 (id と日付) です。ロジックは、14 日と 21 日をカットオフとして使用して、現在のレコードと最後に保持された日付を比較することにより、レコードが同じ ID 内に保持されているかどうかを判断することです。各 ID の最初のレコードは常に保持されます (フラグは 1 で「保持」を示し、0 はそれ以外を示します)。
たとえば、ID 1 の場合、カットオフが 21 の場合、2 番目のレコードの日付は 2013 年 1 月 16 日です。これは、前に保持されたもの (最初のレコードは 2013 年 1 月 1 日) から 15 日後です。15<21 なので、 2 番目のレコードのフラグは 0 です。3 番目のレコードも同様で、2013 年 1 月 19 日と 2013 年 1 月 1 日は 18 日離れており、18<21 なのでフラグ = 0 です。しかし、4 番目のレコードでは、2013 年 1 月 23 日と 2013 年 1 月 1 日は 22 日離れており、22 > 21 であるため、このレコードはフラグ = 1 で保持されます。次に、5 番目のレコードが最後に保持されたレコード (現在は 4 番目のレコード) と比較されます。2013 年 1 月 26 日と 2013 年 1 月 23 日は 3 日離れており、3<21 なので、フラグ =0 です。
のようなものを使用してこれを繰り返すのは簡単partition by
ですか?
ありがとう!!