Oracle
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Oracle

Điền các giá trị null với số tiền không null cuối cùng - Oracle SQL

last_value với IGNORE NULLS hoạt động tốt trong 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 đặt cửa sổ cho chức năng phân tích.

Trong trường hợp này, Oracle đang tìm kiếm LAST_VALUE bên trong nhóm được xác định trong PARTITION BY (cùng một mục) từ đầu tiên (UNBOUNDED PRECEDING) cho đến hàng hiện tại - 1 (1 PRECEDING)

Đó là một sự thay thế phổ biến cho LEAD / LAG bằng IGNORE NULLS trong Oracle 10g

Tuy nhiên, nếu bạn đang sử dụng Oracle 11g, bạn có thể sử dụng LAG từ câu trả lời của Gordon Linoff (có một lỗi đánh máy nhỏ với "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. ngày sql oracle không muộn hơn hôm nay

  2. Sự cố khối PL / SQL:Không tìm thấy dữ liệu lỗi

  3. Oracle 10g Connect trước - Vấn đề về hiệu suất

  4. Làm thế nào để xem kiểu của một biến trong PL / SQL động?

  5. Làm cách nào để tạo nhiều kết nối giản đồ bằng Java?