▷ 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