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

Xóa các hàng để có tối đa x dòng cho mỗi nhóm trong bảng Oracle

Giả sử kết hợp (person_id, car_id) là duy nhất trong bảng, bạn có thể làm như sau:

delete from car_assignment 
where (person_id, car_id) 
        in (select person_id, car_id
            from (
              select person_id, 
                     car_id, 
                     row_number() over (partition by person_id order by car_id) as rn
              from car_assignment
            ) t 
            where rn > 2);


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Lợi ích của việc học các hệ thống DB mới

  2. ORA-01403 không tìm thấy dữ liệu lỗi

  3. Truy vấn cập nhật Oracle SQL chỉ cập nhật các giá trị nếu chúng không có giá trị

  4. Ghi đầu ra DBMS_OUTPUT.Put_Line vào bảng trong Oracle với DBMS_OUTPUT.Get_Lines

  5. Cách chèn vào bảng tạm thời khi lặp qua một chuỗi - Oracle - PL / SQL