Oracle
 sql >> Database >  >> RDS >> Oracle

Oracle self join a partire dal valore minimo (yearmonths) per ciascuna partizione

Usa MIN() come funzione della finestra:

select t.*,
       (case when col2 < add_months(min(col2) over (partition by col1), 3)
             then col3
        end) as imputed_col3
from t;

Nota:se col2 non è una data, puoi convertirla:

select t.*,
       (case when to_date(col2, 'YYYYMM') < add_months(min(to_date(col2, 'YYYYMM')) over (partition by col1), 3)
             then col3
        end) as imputed_col3
from t;