山羊 :
製品のカテゴリの履歴を購入する私のデータキャプチャのメンバー。通常、メンバーは数ヶ月製品Xを購入されますが、私は、製品Yに移動し、それが起こったときに、それらのメンバーに興味を持っています。
マイデータルックス、次のように:
Member Number Date Product TOT
210539662 2019-05-26 PRODUCT A PREVENTATIVE
210539662 2019-06-28 PRODUCT A PREVENTATIVE
210539662 2019-07-30 PRODUCT A PREVENTATIVE
210539662 2019-08-28 PRODUCT A PREVENTATIVE
210539662 2019-09-24 PRODUCT A PREVENTATIVE
210539662 2019-10-17 PRODUCT A PREVENTATIVE
210539662 2019-11-19 PRODUCT B TREATMENT
210539662 2019-12-20 PRODUCT B TREATMENT
私はすべてのメンバー番号と、彼らは処理製品に予防製品から切り替え最初の日付のリストを引っ張るしたいと思います。
私は、Sybase IQを使用していますが、私はその可能性の実行は、サブクエリを命じたとは考えていないので、ご注意ください。
ゴードン・リノフ:
私はすべてのメンバー番号と、彼らは処理製品に予防製品から切り替え最初の日付のリストを引っ張るしたいと思います。
使用するlag()
とgroup by
:
select member,
min(case when prev_tot = 'PREVENTATIVE' and tot = 'TREATMENT'
then date
end) as first_prev_to_treat_date
from (select t.*,
lag(tot) over (partition by member order by date) as prev_tot
from t
) t
group by member;