Đây là một cách tiếp cận bằng cách sử dụng id hàng:
delete from transaction
where
last_update = date '2020-03-01'
and rowid in (
select rid
from (
select
rowid rid,
row_number() over(partition by par_num ,tran_num order by last_update desc) rn
from transaction
) t
where rn > 1
)
Truy vấn con tạo danh sách id hàng cho các hàng không phải là hàng mới nhất trong nhóm của chúng (nghĩa là tất cả các bản ghi có cùng par_num ,tran_num
) - bản ghi gần đây nhất cho mỗi nhóm được xác định bằng cách sử dụng row_number()
. Truy vấn bên ngoài chỉ xóa các hàng đó.