Write a SQL query to delete all duplicate e-mail entries in a table named Person
, keeping unique emails based on its smallest Id.
+----+------------------+| Id | Email |+----+------------------+| 1 | [Email protected] | | 2 | [Email protected] | | 3 | [email protected] |+----+------------------+id is the primary key, column for this table.
For example, after running your query, the above Person
table should has the following rows:
+----+------------------+| Id | Email |+----+------------------+| 1 | [Email protected] | | 2 | [email protected] | +----+------------------+
It would be wrong to write this:
Delete from the person where the ID is not in (the Select Max (a.id) as ID from the person a group by email);
Runtime Error Message: |
You can ' t specify the target table ' person ' for the update in FROM clause |
Last executed input: |
{"Headers": {"person": ["Id", "e-Mail"]}, "Rows": {"person": []}} |
AC:
Delete from the person where the ID is not in (the select ID as ID from (select min (b.id) as ID from the person B group by email) as a);
Leetcode Delete Duplicate Emails