¡Suscríbete a mi canal de Youtube!

▷ 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.


🗨️ ¿Qué opinas?
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

Entradas populares

Donaciones

Seguidores del blog

Suscríbete al blog

Recibe mis nuevas publicaciones por email: