sql >> Database >  >> RDS >> Oracle

Oracle self-join beginnend met minimumwaarde (jaarmaanden) voor elke partitie

Gebruik MIN() als vensterfunctie:

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

Opmerking:als col2 is geen datum, je kunt het converteren:

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;



  1. Kan tekenreekswaarde 1,2 niet doorgeven als invoer voor een orakel-query

  2. Een opgeslagen procedure opvragen voor zijn parameternamen en typen

  3. Kolom bijwerken met willekeurige unieke waarden uit een andere tabel

  4. hoe maak ik een cirkelgeometrie met een straal en coördinaten van het midden, met behulp van MySQL Spatial Extensions?