mysql - 查找和删除几乎重复的行
问题描述
我有一个带有叶片ID、接收到的消息时间和风速的 SQL 表。一秒钟后,我发现风向标发出了重复的风速。每次大约有 2-3 个重复,我怎样才能找到/删除这些记录?
如您在屏幕截图中所见,风速 12.6132 存在 3 次,分别为:161960999 1000 161960999 2000 161960999 3000
我需要删除其中的 2 个,不管是哪个
解决方案
测试这个:
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。
推荐阅读
- c++ - gtk_grid_new(); 在编译时导致未定义的引用错误
- react-admin - 在 React-admin 中以编程方式重定向或构建 URL
- php - 添加后不显示 Prestashop 1.7 图像
- reactjs - ReactJS 在我设置状态时类渲染两次是否正常
- c++ - 如何检测 VS C++ 编译器是否支持 C++11?
- powershell - Azure DevOps Task ScriptArguments # ScriptArguments 中的注释问题
- c - 多维数组寻址 C
- angular-material - 如何使用 chart.js 显示分组条形图?
- python - 如何在 AWS EC2 ubuntu 实例中将我的 python3 版本从 3.5.2 升级到 3.7?
- javascript - Object.defineProperties 不适用于负属性