題182. 查找重復的電子郵箱:
思路:先GROUP BY分組,再HAVING過濾分組
SELECT Email FROM Person GROUP BY Email HAVING COUNT(*)>1
如果采用以下代碼:
SELECT p1.Email FROM Person p1,Person p2 WHERE p1.Id
代碼執行:將表p1的數據取出,遍歷表p2的數據。
假設輸入數據為:
輸出結果為:p1保存瞭id為1,2的數據(除去最大值的數據),p2保存瞭id為2,3的數據(除去最小值的數據)
題196. 刪除重復的電子郵箱:
思路:參照上面的思路,p2保留除去最小值id的重復數據,刪除p2,即保留瞭id為最小值的重復數據
DELETE p2 FROM Person p1,Person p2
WHERE p1.Email=p2.Email AND p1.id