captura dados de membros da minha histórico de compras para uma categoria de produtos. Normalmente um membro estará comprando o produto X para um número de meses, mas eu estou interessado em aqueles membros que se mudaram para o produto Y e quando isso aconteceu.
Meus dados é o seguinte:
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
Eu gostaria de puxar uma lista de todos os números de membros e a primeira data em que mudaram de produtos preventivos para produtos de tratamento.
Por favor, esteja ciente de que estou usando Sybase IQ e eu não acredito que a sua possível candidatura ordenou sub-consultas.
Eu gostaria de puxar uma lista de todos os números de membros e a primeira data em que mudaram de produtos preventivos para produtos de tratamento.
Use lag()
e 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;