?LeetCode刷題實(shí)戰(zhàn)196:刪除重復(fù)的電子郵箱
Write a SQL query to delete all duplicate email entries in a table named Person, keeping only unique emails based on its smallest Id.
題意

解題
查詢目標(biāo):刪除一條記錄
查詢范圍:Person表
查詢條件:刪除所有重復(fù)的電子郵箱 ,重復(fù)的郵箱里只保留Id最小的哪個(gè)。
顯然,通過(guò)這個(gè)查詢條件可以提取出來(lái)兩條and關(guān)系的條件:
(1)找出所有重復(fù)的電子郵箱(2)刪除Id大的重復(fù)郵箱;
對(duì)于條件(1),需要判斷出所有重復(fù)的電子郵箱,即p1.Email = p2.Email;
對(duì)于條件(2),需要判斷重復(fù)郵箱中Id較大的:p1.Id > p2.Id
delete
p1
from
Person p1,
Person p2
where
(p1.email = p2.email) and (p1.id > p2.id)
評(píng)論
圖片
表情
