Sybase IQでは、16 - 製品を変更したメンバーを探します

山羊 :

製品のカテゴリの履歴を購入する私のデータキャプチャのメンバー。通常、メンバーは数ヶ月製品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;

おすすめ

転載: http://10.200.1.11:23101/article/api/json?id=377607&siteId=1