我犯了一个错误,并且有多余的重复项。
我有一个包含4个关键字段的表。A1
,k1
,k2
,k3
。
A1
是自动递增和主键。
的组合k1
,k2
而k3
应该是唯一的,我有我之前创建唯一索引来删除重复的行。有些行有一个重复项,有些行有很多重复项。
SELECT CONCAT(k1, k2, k) AS dup_value
FROM myviews
GROUP BY dup_value
HAVING (COUNT(dup_value) > 1)
向我显示了我需要处理的重复值。但是现在我不知道如何保留一个并删除每个重复集的其余部分。
MySQL在DELETE语句中支持JOIN。如果要保留第一个重复项:
DELETE a
FROM MYVIEWS a
JOIN (SELECT MIN(t.a1) AS min_a1, t.k1, t.k2, t.k3
FROM MYVIEWS t
GROUP BY t.k1, t.k2, t.k3
HAVING COUNT(*) > 1) b ON b.k1 = a.k1
AND b.k2 = a.k2
AND b.k3 = a.k3
AND b.min_a1 != a.a1
如果要保留最后一个重复项:
DELETE a
FROM MYVIEWS a
JOIN (SELECT MAX(t.a1) AS max_a1, t.k1, t.k2, t.k3
FROM MYVIEWS t
GROUP BY t.k1, t.k2, t.k3
HAVING COUNT(*) > 1) b ON b.k1 = a.k1
AND b.k2 = a.k2
AND b.k3 = a.k3
AND b.max_a1 != a.a1
我有一个数据框,看起来像: 因为行(1,2)和行(3,4)具有重复的
我有一个简单的数据库表 我想删除所有按fv和sv分组的重复行。这已经是一个相当流行的问题,有很好的答案。但我需要改变这种情况。当rel\u id为NULL时,我想保留该行。在任何其他情况下,任何事情都会发生。 所以通过使用以下值 任何一个 或 将是有效的结果。其中为 不会。因为第一个条目有作为,它在之上担任主席。 我目前有这个(这是关于基本重复问题的答案)作为删除重复项的查询,但我不确定如何继续修
我有一个表,需要删除整个行,其中ID发生第二次和以后的时间,但留下第一次出现suCustoriID顺便说一下。M表的ID是主键,CustometID是重复的。因此,我需要删除所有重复的自定义ID行。 上面的代码将删除所有id,包括每个id的第一次出现,但我需要保留它们的第一次出现。请告知。
我试图编写一个代码,它接收并删除该中的重复字符。 例如。如果,则应返回。到目前为止,我的代码只返回与给定的相同的tekst…
本文向大家介绍SQL语句实现删除重复记录并只保留一条,包括了SQL语句实现删除重复记录并只保留一条的使用技巧和注意事项,需要的朋友参考一下 SQL:删除重复数据,只保留一条用SQL语句,删除掉重复项只保留一条在几千条记录里,存在着些相同的记录,如何能用SQL语句,删除掉重复的呢 1、查找表中多余的重复记录,重复记录是根据单个字段(peopleId)来判断 2、删除表中多余的重复记录,重复记录是根据
我需要删除每个表ID的所有重复项,除了一个之外。像下面这样。我需要删除valueid上01,02,03的所有副本。。。 原件: 应该这样结束: 我试着用这样的东西来做,但是我不知道我怎么才能在id上删除这些内容 有什么建议吗? 提前感谢