Elimina los emails duplicados

Escriba una solución para eliminar todos los emails duplicados, conservando un único email con el id mas bajo. Para usuarios SQL, tome en cuenta por favor que se espera que escriba una sentencia DELETE en lugar de SELECT. Para usuarios de Pandas, tome en cuenta que se busca modificar el DataFrame Person sin crear más objetos. Después de ejecutar el script, el resultado es la misma tabla Person. La solución se compilará y ejecutará primero, y enseguida mostrará la tabla Person. El orden final de la tabla Persona no importa.

#database

Tabla: Person

+-------------+---------+
| Column Name | Type    |
+-------------+---------+
| id          | int     |
| email       | varchar |
+-------------+---------+

- id es la llave primaria (columna con valores únicos).
- Cada fila contiene un email. Los emails no contienen letras mayúsculas.

El formato del resultado se muestra en el siguiente ejemplo.

Ejemplo 1:

Entrada:

Tabla Person:
+----+------------------+
| id | email            |
+----+------------------+
| 1  | john@example.com |
| 2  | bob@example.com  |
| 3  | john@example.com |
+----+------------------+

Salida:

+----+------------------+
| id | email            |
+----+------------------+
| 1  | john@example.com |
| 2  | bob@example.com  |
+----+------------------+

Explicación: john@example.com se repite dos veces. Conservamos la fila con el Id = 1.

Solución

DELETE p2
FROM person p1,
     person p2
WHERE p1.email = p2.email
AND p2.id > p1.id;

slackmart blog © 2024