Eliminar duplicados, DISTINCT
En algunas situaciones, una consulta SQL de selección puede devolver filas de datos repetidas.
Por ejemplo, vamos a mostrar la columna class de la tabla Student_in_class de la base de datos que guarda la información sobre el horario de clases de un colegio.
MySQL 8.4SELECT class FROM Student_in_class;
Como en una misma clase puede haber varios estudiantes, no es de extrañar que en el resultado veamos valores repetidos. Para evitar este tipo de duplicados en el resultado existe la palabra clave DISTINCT.
Sintaxis de DISTINCT
SELECT [DISTINCT] campos_tabla FROM nombre_tabla;- [ ]parte opcional
- DISTINCT
Deja en el resultado solo las filas únicas: de varias filas iguales se muestra solo una.
Palabra claveOpcional- campos_tabla
Las columnas que aparecerán en el resultado. La unicidad se comprueba teniendo en cuenta todas las columnas indicadas a la vez.
- nombre_tabla
- La tabla de la que se seleccionan los datos.
Es decir, en nuestro caso, la consulta para obtener las clases únicas en las que hay al menos un estudiante quedaría así:
MySQL 8.4SELECT DISTINCT class FROM Student_in_class;
DISTINCT en varias columnas
Si usas la palabra clave DISTINCT con dos o más columnas, se eliminarán los registros que tengan los mismos valores en todas ellas.
Es decir, para una tabla como esta
una consulta con la palabra clave DISTINCT devolvería todas las combinaciones de nombres y apellidos, salvo el «John Scott» duplicado.
MySQL 8.4SELECT DISTINCT first_name, last_name FROM User;