Sybase IQ 16 - miembros a encontrar productos que han cambiado

La cabra :

Mis captura los datos de los miembros de la historia de compras de una categoría de productos. Normalmente un miembro va a comprar el producto X por un número de meses, pero estoy interesado en los miembros que mueven al producto Y y cuando eso sucedió.

Mis datos es el siguiente:

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

Me gustaría sacar una lista de todos los números de miembros y la primera fecha en que cambiaron de productos preventivos a los productos de tratamiento.

Tenga en cuenta que estoy utilizando Sybase IQ y no creo que su posible ejecución ordenó sub-consultas.

Gordon Linoff:

Me gustaría sacar una lista de todos los números de miembros y la primera fecha en que cambiaron de productos preventivos a los productos de tratamiento.

Utilizar lag()y 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;

Supongo que te gusta

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