[LeetCode MySQL] 196. Delete Duplicate Emails

2021. 1. 19. 23:33Today I Learned.../MySQL

196. Delete Duplicate Emails

Write a SQL query to delete all duplicate email entries in a table named Person, keeping only unique emails based on its smallest Id.

+----+------------------+
| Id | Email            |
+----+------------------+
| 1  | john@example.com |
| 2  | bob@example.com  |
| 3  | john@example.com |
+----+------------------+
Id is the primary key column for this table.

For example, after running your query, the above Person table should have the following rows:

+----+------------------+
| Id | Email            |
+----+------------------+
| 1  | john@example.com |
| 2  | bob@example.com  |
+----+------------------+

Note:

Your output is the whole Person table after executing your sql. Use delete statement.

 

Solution

delete from person
where id not in (select id from (select min(id) id from person group by email) sub)

Reference: LeetCode 196. Delete Duplicate Emails