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

Cập nhật cột dựa trên bản ghi trước đó

Tôi tin rằng bạn muốn row_number() :

select t.*,
       (row_number() over (partition by c1, c2, c3, c4, c5 order by c6) - 1
       ) as "Count"
from t;

Bạn có thể sử dụng merge để đưa cái này vào một update bản tường trình. Ngoài ra, nếu bạn thực sự muốn cập nhật update :

update t
    set count = (select count(*)
                 from t t2
                 where t2.col1 = t.col1 and t2.col2 = t.col2 and t2.col3 = t.col3 and
                       t2.col4 = t.col4 and t.col5 = t2.col5 and
                       t2.col6 < t.col6
                );


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Quản lý mật khẩu và tài nguyên trong Oracle bằng cách sử dụng Hồ sơ

  2. Oracle:Cách chọn hàng hiệu quả bằng danh sách khóa

  3. Làm thế nào để truy vấn tên cơ sở dữ liệu trong Oracle SQL Developer?

  4. Tương đương với SQL Server ÁP DỤNG trong Oracle là gì?

  5. bản ghi trùng lặp cần xóa oracle db