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:
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 |
|---|---|---|---|---|
| 1 | Ana García | Madrid | España | 120 |
| 2 | Luis Pérez | Barcelona | España | 85 |
| 3 | María López | Valencia | España | 200 |
| 4 | Carlos Ruiz | Madrid | España | 45 |
| 5 | Elena Torres | Sevilla | España | 67 |
| 6 | John Smith | London | UK | 150 |
| 7 | Marie Dubois | Paris | Francia | 92 |
| 8 | Hans Müller | Berlin | Alemania | 78 |
| 9 | Luca Rossi | Roma | Italia | 110 |
| 10 | Sofia Anders | Stockholm | Suecia | 55 |
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;
Resultado: cada par ciudad–país aparece una sola vez (Madrid–España no se duplica aunque haya dos clientes en Madrid).
| Ciudad | Pais |
|---|---|
| Barcelona | España |
| Berlin | Alemania |
| London | UK |
| Madrid | España |
| Paris | Francia |
| Roma | Italia |
| Sevilla | España |
| Stockholm | Suecia |
| Valencia | España |
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):
Resultado:
un único número — por ejemplo,
6
si hay seis países distintos en la tabla.
| Paises_Distintos |
|---|
| 6 |
Resumen
DISTINCTelimina 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…).
Ejercicio: COUNT DISTINCT
Practica contar valores distintos con COUNT(DISTINCT …). Usa la tabla Clientes de la demo (Elena Torres, Valencia…).
Ejercicio: DISTINCT en dos columnas
Practica DISTINCT con Ciudad y Pais. Usa la tabla Clientes de la demo (Elena Torres, Valencia…).
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.