今天看爬蟲有重複資料, 也不曉得到底是程式的 bug 還是該網站有問題, 於是想說清理看看, 沒想到直接吃土 LOL
依稀記得以前在書上看過類似的用法, 想半天想不出來, 後來問 GPT 竟然是要用 self join, 年紀大了記性也開始不好 QQ
這個現在的小朋友說不定連 self join 都沒聽過 哈
沒想到竟然還有實戰用上 self join 的時刻, 有夠帥氣 XD
1 2 3 4 5
| SELECT deviceId , time , COUNT(*) FROM data WHERE deviceId = '123' GROUP BY deviceId , time ORDER BY 3 DESC;
|
找出是重複的資料
1 2 3 4 5 6 7 8 9
| SELECT * FROM data WHERE (deviceId, time) IN ( SELECT deviceId, time FROM data GROUP BY deviceId, time HAVING COUNT(*) > 1 ) ORDER BY deviceId, time;
|
刪除重複的資料
1 2 3 4 5 6
| DELETE m1 FROM data m1 JOIN data m2 ON m1.deviceId = m2.deviceId AND m1.time = m2.time AND m1.id > m2.id;
|