首页 > 解决方案 > 查找和删除几乎重复的行

问题描述

我有一个带有叶片ID接收到的消息时间风速的 SQL 表。一秒钟后,我发现风向标发出了重复的风速。每次大约有 2-3 个重复,我怎样才能找到/删除这些记录?

如您在屏幕截图中所见,风速 12.6132 存在 3 次,分别为:161960999 1000 161960999 2000 161960999 3000

我需要删除其中的 2 个,不管是哪个

有重复的表

标签: mysqlphpmyadmin

解决方案


测试这个:

DELETE t1
FROM `table` t1
JOIN `table` t2 USING (id, windSpeed)
LEFT JOIN `table` t3 USING (id)
WHERE t1.receivedAt > t3.receivedAt
  AND t3.receivedAt > t2.receivedAt
  AND t1.windSpeed != t3.windSpeed
  AND t3.id IS NULL

我希望windSpeed数据类型是 DECIMAL,而不是 FLOAT 或 DOUBLE。


推荐阅读