Oracle
 sql >> база данни >  >> RDS >> Oracle

Попълване на нулеви стойности с последната ненулева сума - Oracle SQL

последна_стойност с IGNORE NULLS работи добре в 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 настройва прозореца за аналитична функция.

В този случай Oracle търси LAST_VALUE вътре в групата, дефинирана в PARTITION BY (същият елемент) от началото (НЕОГРАНИЧЕН ПРЕДИШЕН) до текущия ред - 1 (1 ПРЕДИШЕН)

Това е обичайна замяна на LEAD/LAG с IGNORE NULLS в Oracle 10g

Въпреки това, ако използвате Oracle 11g, можете да използвате LAG от отговора на Gordon Linoff (има малка правописна грешка с „ignore nulls“)



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Дефинирайте VIEW в Oracle, без да използвате CREATE

  2. SQL за генериране на списък с числа от 1 до 100

  3. Проблем с формата на Symfony + Doctrine Oracle DateTime

  4. Идентифициране и разрешаване на Oracle ITL Deadlock

  5. Защо OracleDataAdapter.Fill() е много бавен?