Có ai có tuyên bố sql thanh lịch để xóa bản ghi trùng lặp khỏi bảng không, nhưng chỉ khi có nhiều hơn x số bản sao? Vì vậy, nó cho phép lên đến 2 hoặc 3 bản sao, nhưng đó là nó?Truy vấn SQL - Xóa các bản sao nếu có nhiều hơn 3 dups?
Hiện nay tôi có một tuyên bố chọn nào sau đây:
delete table
from table t
left outer join (
select max(id) as rowid, dupcol1, dupcol2
from table
group by dupcol1, dupcol2
) as keeprows on t.id=keeprows.rowid
where keeprows.rowid is null
này hoạt động tuyệt vời. Nhưng bây giờ những gì tôi muốn làm là chỉ xóa những hàng nếu họ có nhiều hơn nói 2 bản sao.
Cảm ơn
khi có 5 bản sao, bạn có muốn duy nhất còn lại sau khi xóa, hoặc ba? – Stobor