我有一个困难的删除任务,需要您的善意帮助。 数据库涉及在不同城市出售的交易(行数超过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)
此代码的问题是运行此代码后,只有一行重复行被移动。有更好的解决方案