Oracle
 sql >> Base de données >  >> RDS >> Oracle

Oracle self join commençant par la valeur minimale (annéemois) pour chaque partition

Utilisez MIN() comme fonction de fenêtre :

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

Remarque :Si col2 n'est pas une date, vous pouvez la convertir :

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;