ostatnia_wartość z IGNORE NULLS działa dobrze w 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
ustawia okno dla funkcji analitycznej.
W tym przypadku Oracle szuka LAST_VALUE wewnątrz grupy zdefiniowanej w PARTITION BY (ta sama pozycja) od początku (UNBOUNDED PRECEDING) do bieżącego wiersza - 1 (1 PRECEDING)
Jest to powszechny zamiennik LEAD/LAG z IGNORE NULLS w Oracle 10g
Jeśli jednak używasz Oracle 11g, możesz użyć LAG z odpowiedzi Gordona Linoffa (jest mała literówka z "ignoruj wartości null")