Sybase IQ 16 - membros a encontrar que mudaram produto

A cabra :

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.

Gordon Linoff:

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;

Acho que você gosta

Origin http://10.200.1.11:23101/article/api/json?id=377605&siteId=1
Recomendado
Clasificación