我有一個困難的刪除任務,需要您的善意幫助。 數據庫涉及在不同城市出售的交易(行數超過400.000)。我的任務是刪除多個城市同時銷售的同一筆交易。然而,同一筆交易在不同的時間可能會在一個城市出現好幾次。同樣的交易具有相同的標題(至少前12個特徵)。在兩種情況下複製重複行刪除任務
這裏被簡化數據樣本
id; city_id; starting_date; title;
1; A; 30.01.2013; chain hotel A coupon
2; B; 30.01.2013; chain hotel A coupon
3; C; 30.01.2013; chain hotel A coupon
4; A; 01.03.2013; chain hotel A coupon
5; A; 06.05.2013; restaurant A coupon
6; A; 30.05.2013; restaurant A coupon
我想刪除倍數城市同時銷售的所有的交易,但保持在不同的時間在城市銷售的交易。以下是我的代碼:
DELETE FROM `table`
WHERE `id` in
(SELECT t2.`id` from
(
SELECT `id`
FROM `table`
GROUP BY LEFT(title, 35)
HAVING COUNT(*)>1
AND COUNT(DISTINCT `city_id`)>1)
as t2)
此代碼的問題是運行此代碼後,只有一行重複行被移動。有更好的解決方案