sql >> Database >  >> RDS >> Oracle

Vul null-waarden in met het laatste niet-null-bedrag - Oracle SQL

laatste_waarde met IGNORE NULLS werkt prima in Oracle 10g:

select item, year, month, amount, 
       last_value(amount ignore nulls) 
         over(partition by item 
              order by year, month 
              rows between unbounded preceding and 1 preceding) from tab;

rows between unbounded preceding and 1 preceding stelt het venster voor de analytische functie in.

In dit geval zoekt Oracle naar LAST_VALUE binnen de groep gedefinieerd in PARTITION BY (hetzelfde item) vanaf het begin (UNBOUNDED PRECEDING) tot de huidige rij - 1 (1 PRECEDING)

Het is een gebruikelijke vervanging voor LEAD/LAG met IGNORE NULLS in Oracle 10g

Als u echter Oracle 11g gebruikt, kunt u LAG gebruiken uit het antwoord van Gordon Linoff (er is een kleine typfout met "negeer nulls")



  1. Fix Waar gebruiken; Tijdelijk gebruiken; Bestandssorteren gebruiken

  2. Voegt jsonArrayAgg samen om de array in jOOQ . leeg te maken

  3. Geen database geselecteerd bij ophalen van mysql-website

  4. MySQL geeft alle duplicaten weer