DISTINCT de SQL para resultados distintos

DISTINCT de SQL para resultados distintos

Gracias a la cláusula DISTINCT de SQL, podemos encontrar los resultados distintos en una consulta. Esto es muy útil para eliminar registros duplicados en las tablas o para ver resultados sin repetir. De momento, aún no vamos a eliminar nada. En este capítulo, solo vamos a filtrar.

Sintaxis de DISTINCT de SQL

La sintaxis de DISTINCT es la siguiente:

SELECT DISTINCT columna1, columna2, ...
FROM nombre_tabla;

Seleccionamos las columnas que queramos y luego indicamos de qué tabla. Entonces, esto nos saca lo mismo que un SELECT normal, solo que al tener el DISTINCT, nos saca solo los registros distintos en esas tablas.


Ejemplo práctico de DISTINCT en SQL

Vamos a la base de datos 'world' de MySQL. En la tabla 'countrylanguage', quiero ver solo los registros distintos de idiomas, es decir, el español se habla en muchos países, el inglés también, de forma que si filtramos por idioma sin DISTINCT, ocurre esto:

SELECT Language
FROM countrylanguage
ORDER BY Language;
select sql

Pero si queremos que salga un solo resultado distinto de cada lenguaje, hay que añadir la cláusula DISTINCT al SELECT.

SELECT DISTINCT Language
FROM countrylanguage
ORDER BY Language;

DISTINCT en diferentes columnas

Como puedes ver en la sintaxis, siempre que tenga sentido, es útil utilizar el DISTINCT para filtrar resultados distintos de varias columnas. Por ejemplo, de la base de datos 'sakila', en la tabla 'customers', voy a filtrar por los clientes que se llamen distinto y a la vez, que las tiendas sean distintas con el campo 'store_id'. Por cierto, el ORDER BY, no es un requisito para DISTINCT, solo lo utilizo para que veas los resultados de forma ordenada.

SELECT DISTINCT first_name, store_id
FROM customer
ORDER BY first_name;
cláusula distinct sql

Si te fijas, aunque estamos buscando los valores distintos, aun así han salido repetidos. Sin embargo, hay que tener en cuenta que se filtra también teniendo en cuenta la segunda columna, No hay dos JAMIE en la misma tienda, cada uno es distinto en la suya.

Dejamos el capítulo aquí. Seguimos con más cosas sobre las consultas en el siguiente.

No te pierdas nada del curso Máster en SQL.


Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

curso sql Entrada anterior IS NULL e IS NOT NULL en SQL
curso sql Entrada siguiente LIMIT y OFFSET en SQL