▷ SELECT DISTINCT en MySQL
¿Qué es SELECT DISTINCT en SQL y cómo se usa?
En SQL, SELECT DISTINCT se utiliza para eliminar los duplicados de una consulta y obtener únicamente los valores únicos de una o más columnas. Esto resulta muy útil cuando queremos hacer reportes o análisis sin repetir datos.
📌 Sintaxis básica
SELECT DISTINCT columna1 FROM tabla;
Si se utilizan varias columnas, DISTINCT eliminará duplicados solo si todas las columnas tienen los mismos valores en una fila.
---🔍 Ejemplo básico con una sola tabla
Supongamos que tenemos la siguiente tabla llamada clientes
:
CREATE TABLE clientes (
id INT AUTO_INCREMENT PRIMARY KEY,
nombre VARCHAR(50),
pais VARCHAR(50)
);
INSERT INTO clientes (nombre, pais) VALUES
('Juan', 'México'),
('Juan', 'México'),
('Pedro', 'México'),
('Ana', 'España'),
('Carlos', 'España');
Consulta sin DISTINCT:
SELECT pais FROM clientes;
Resultado:
México
México
México
España
España
Consulta con DISTINCT:
SELECT DISTINCT pais FROM clientes;
Resultado:
México
España
Como puedes ver, los países repetidos fueron eliminados gracias al uso de DISTINCT
.
📚 DISTINCT con múltiples columnas
Si hacemos lo siguiente:
SELECT DISTINCT pais, nombre FROM clientes;
El resultado será:
México Juan
México Pedro
España Ana
España Carlos
¿Por qué aparece dos veces "México"? Porque el nombre es diferente, así que la combinación pais + nombre
no es idéntica en todas las filas.
🧩 DISTINCT con tablas relacionadas (JOIN)
Veamos un ejemplo con dos tablas relacionadas: clientes
e compras
.
CREATE TABLE compras (
id INT AUTO_INCREMENT PRIMARY KEY,
cliente_id INT,
producto VARCHAR(50),
FOREIGN KEY (cliente_id) REFERENCES clientes(id)
);
INSERT INTO compras (cliente_id, producto) VALUES
(1, 'Laptop'),
(1, 'Tablet'),
(2, 'Teléfono'),
(3, 'Monitor'),
(4, 'Mouse');
Consulta para obtener los países de los clientes que han hecho compras:
SELECT DISTINCT c.pais
FROM clientes c
JOIN compras cp ON c.id = cp.cliente_id;
Resultado:
México
España
Aunque algunos clientes de un mismo país hayan hecho varias compras, DISTINCT se asegura de que el país aparezca solo una vez.
---📊 DISTINCT con funciones de agregación
También se puede usar DISTINCT
con funciones como COUNT()
:
SELECT COUNT(DISTINCT pais) AS total_paises FROM clientes;
Resultado:
2
Esto nos da el número de países únicos en la tabla clientes
.
✅ Conclusión
SELECT DISTINCT
es una herramienta esencial en SQL cuando queremos evitar resultados duplicados. Es especialmente útil en reportes, validaciones y visualizaciones limpias de datos. Solo recuerda que si usas varias columnas, eliminará duplicados solo si todas coinciden.
¿Te gustó el contenido? ¡Déjame tus comentarios y no te pierdas las próximas entradas sobre más consultas SQL!
A continuación te dejo con un video donde explico más a detalle acerca de la cláusula SELECT DISTINCT en MySQL.
Me encantaría saber tu opinión sobre este tema. Déjame un comentario aquí abajo 💬 y, si te gustó el contenido, ¡no olvides seguir el blog para no perderte las próximas publicaciones! 📚✨
Comentarios