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

Udfyld null-værdier med sidste ikke-null-beløb - Oracle SQL

sidste_værdi med IGNORE NULLS fungerer fint i 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 indstiller vinduet for analytisk funktion.

I dette tilfælde søger Oracle efter LAST_VALUE inde i gruppen defineret i PARTITION BY (det samme element) fra begyndelsen (UNBOUNDED PRECEDING) indtil den aktuelle række - 1 (1 PRECEDING)

Det er en almindelig erstatning for LEAD/LAG med IGNORE NULLS i Oracle 10g

Men hvis du bruger Oracle 11g, kan du bruge LAG fra Gordon Linoffs svar (der er en lille tastefejl med "ignorer null")



  1. Sagsudsagn med where condition i SQL

  2. Kopier en enorm MySQL-tabel fra en fjernbetjening til en lokal database

  3. få værdi fra MySQL-database med PHP

  4. Twitter bootstrap typeahead returnerer flere værdier og udfylder redigeringsfeltet