SELECT DISTINCT en SQL

SELECT DISTINCT en SQL devuelve solo los valores únicos de una o varias columnas, eliminando filas repetidas en el resultado.

SELECT DISTINCT en SQL es una pieza habitual del flujo SQL: consultar, filtrar, agrupar o modificar datos. Cada ejemplo usa tablas de demostración para que puedas experimentar sin riesgo.

Cómo practicar: ejecuta la consulta tal cual, revisa columnas y tipos, luego cambia un filtro o un alias y vuelve a ejecutar.

Un SELECT normal muestra todas las filas: si diez clientes son de España, verás «España» diez veces. Con DISTINCT , cada valor aparece una sola vez, lo que ayuda a ver qué opciones existen en esa columna.

Es la herramienta adecuada cuando te interesa la lista de valores distintos (países, ciudades, categorías), no el detalle fila a fila. En los ejemplos usamos SELECT DISTINCT Pais sobre la tabla Clientes.


Sintaxis SELECT DISTINCT

Coloca DISTINCT justo después de SELECT :

Ejemplo

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

SELECT DISTINCT en una columna

En la tabla Clientes hay varios clientes de España, pero solo queremos ver cada país una vez:

Países distintos

    SELECT DISTINCT Pais
FROM Clientes;
  
Abrir en editor

Resultado: una fila por país (España, UK, Francia, Alemania…) sin repetir.

Pais
Alemania
España
Francia
Italia
Suecia
UK

Base de datos demo para SELECT DISTINCT

La sintaxis indica el orden de argumentos y palabras clave. Copia la plantilla y sustituye nombres de columnas o literales entre comillas simples.

ID_Cliente Nombre_Cliente Ciudad Pais N_Ventas
1Ana GarcíaMadridEspaña120
2Luis PérezBarcelonaEspaña85
3María LópezValenciaEspaña200
4Carlos RuizMadridEspaña45
5Elena TorresSevillaEspaña67
6John SmithLondonUK150
7Marie DuboisParisFrancia92
8Hans MüllerBerlinAlemania78
9Luca RossiRomaItalia110
10Sofia AndersStockholmSuecia55
Tabla Clientes en el editor SQL (10 filas). La usamos en la mayoría de ejemplos de esta fase.

DISTINCT en varias columnas

Puedes aplicar DISTINCT a más de una columna: SQL elimina filas repetidas en la combinación de valores, no en cada columna por separado.

Combinaciones ciudad–país

    SELECT DISTINCT Ciudad, Pais
FROM Clientes
ORDER BY Ciudad;
  
Abrir en editor

Resultado: cada par ciudad–país aparece una sola vez (Madrid–España no se duplica aunque haya dos clientes en Madrid).

CiudadPais
BarcelonaEspaña
BerlinAlemania
LondonUK
MadridEspaña
ParisFrancia
RomaItalia
SevillaEspaña
StockholmSuecia
ValenciaEspaña
Cada combinación ciudad–país aparece una sola vez (Madrid–España no se repite aunque haya dos clientes en Madrid).


COUNT(DISTINCT) en SQL

A veces no basta con listar los valores: quieres saber cuántos hay. La función COUNT cuenta filas; con DISTINCT dentro solo cuenta valores únicos (por ejemplo, cuántos países distintos hay en Clientes):

Ejemplo

    SELECT COUNT(DISTINCT Pais) AS Paises_Distintos
FROM Clientes;
  
Abrir en editor

Resultado: un único número — por ejemplo, 6 si hay seis países distintos en la tabla.

Paises_Distintos
6

Resumen

  • DISTINCT elimina duplicados en el resultado.
  • Funciona con una o varias columnas.
  • COUNT(DISTINCT …) cuenta valores únicos.
  • Para filtrar filas antes, usa WHERE.

Cómo practicar en el editor

1. Pulsa Pruébalo tú mismo en un ejemplo.
2. Cambia un filtro, columna o literal.
3. Ejecuta y compara el resultado con la tabla de ejemplo.


Practica con ejercicios

Repasa la lección con consultas sobre Clientes (Elena Torres, Valencia…) y Productos (pera, mango, fresa) de nuestra base demo.

Ejercicio: Valores distintos de una columna

Practica SELECT DISTINCT para eliminar duplicados. Usa la tabla Clientes de la demo (Elena Torres, Valencia…).

Consulta

    SELECT DISTINCT Pais
FROM Clientes;
  
Abrir en editor

Ejercicio: COUNT DISTINCT

Practica contar valores distintos con COUNT(DISTINCT …). Usa la tabla Clientes de la demo (Elena Torres, Valencia…).

Consulta

    SELECT COUNT(DISTINCT Pais) AS Paises_Distintos
FROM Clientes;
  
Abrir en editor

Ejercicio: DISTINCT en dos columnas

Practica DISTINCT con Ciudad y Pais. Usa la tabla Clientes de la demo (Elena Torres, Valencia…).

Consulta

    SELECT DISTINCT Ciudad, Pais
FROM Clientes
ORDER BY Ciudad;
  
Abrir en editor

Cómo practicar

1. Pulsa Ejecutar aquí en el bloque.
2. Modifica la consulta (filtro, columnas…).
3. O abre el editor para más espacio.

Comprueba lo aprendido

Responde 2–3 preguntas sobre esta lección. Verás ✓ en verde si aciertas o ✗ en rojo si fallas.