Puedes ejecutar cualquier consulta SQL en nuestra consola interactiva: Abrir consola SQL →
DISTINCT en SQL: elimina duplicados de forma eficiente
La palabra clave DISTINCT permite eliminar valores duplicados en una consulta SQL. Es fundamental cuando necesitas obtener listas únicas, categorías, ciudades, productos o cualquier dato sin repetición.
Tabla de contenidos
1. ¿Qué es DISTINCT?
DISTINCT elimina valores duplicados en los resultados de una consulta. Si una columna contiene valores repetidos, DISTINCT devolverá solo uno de cada valor.
SELECT DISTINCT ciudad FROM usuarios;
2. DISTINCT en una columna
SELECT DISTINCT nombre FROM usuarios;
Devuelve una lista única de nombres sin duplicados.
3. DISTINCT en varias columnas
DISTINCT también puede aplicarse a varias columnas.
SELECT DISTINCT ciudad, edad FROM usuarios;
Devuelve combinaciones únicas de ciudad + edad.
4. COUNT(DISTINCT)
Puedes contar valores únicos usando COUNT(DISTINCT columna).
SELECT COUNT(DISTINCT ciudad) FROM usuarios;
5. Ejemplos prácticos
SELECT DISTINCT categoria FROM productos;
SELECT DISTINCT ciudad FROM usuarios;
SELECT DISTINCT nombre, ciudad FROM usuarios;
SELECT COUNT(DISTINCT categoria) FROM productos;
6. Ejercicios para practicar
- Obtén una lista única de ciudades.
- Obtén una lista única de categorías.
- Obtén combinaciones únicas de nombre + ciudad.
- Cuenta cuántas ciudades únicas hay.
- Explica para qué sirve DISTINCT.
SELECT DISTINCT ciudad FROM usuarios;
SELECT DISTINCT categoria FROM productos;
SELECT DISTINCT nombre, ciudad FROM usuarios;
SELECT COUNT(DISTINCT ciudad) FROM usuarios;
-- DISTINCT sirve para eliminar valores duplicados.
7. Mini‑proyecto: Lista única de categorías
CREATE TABLE productos (
id INT PRIMARY KEY,
nombre VARCHAR(50),
categoria VARCHAR(50)
);
INSERT INTO productos VALUES
(1, 'Camiseta', 'Ropa'),
(2, 'Pantalón', 'Ropa'),
(3, 'Auriculares', 'Electrónica');
SELECT DISTINCT categoria FROM productos;
8. Errores comunes
- Usar DISTINCT sin necesidad.
- Confundir DISTINCT con GROUP BY.
- Aplicar DISTINCT a columnas numéricas sin sentido.
- Olvidar que DISTINCT afecta a todas las columnas seleccionadas.
9. Preguntas frecuentes
¿DISTINCT es lento?
Puede serlo en tablas grandes, pero es muy útil para limpieza de datos.
¿DISTINCT y GROUP BY son iguales?
No, aunque a veces producen resultados similares.