sql >> Base de Datos >  >> RDS >> Oracle

Rellene valores nulos con la última cantidad no nula - Oracle SQL

último_valor con IGNORE NULLS funciona bien en 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 establece la ventana para la función analítica.

En este caso, Oracle busca ÚLTIMO_VALOR dentro del grupo definido en PARTICIÓN POR (el mismo elemento) desde el principio (ANTERIOR ILIMITADO) hasta la fila actual:1 (1 PRECEDENTE)

Es un reemplazo común para LEAD/LAG con IGNORE NULLS en Oracle 10g

Sin embargo, si está usando Oracle 11g, puede usar LAG de la respuesta de Gordon Linoff (hay un pequeño error tipográfico con "ignorar nulos")