Módulo 3 · Organizar y resumir

Evita duplicados con DISTINCT

Obtén valores únicos sin modificar los datos de la tabla.

14 minNivel InicialAntes necesitas: SELECT y FROM

0 de 45 lecciones

Al terminar, podrás

  • Obtener valores o combinaciones únicas.
  • Predecir qué ocurre al seleccionar más de una columna.
  • Distinguir la deduplicación del resultado de una modificación de la tabla.

Recupera lo aprendido: ¿ORDER BY elimina repeticiones o solamente ordena la salida?

La idea clave

DISTINCT elimina filas repetidas del resultado de una consulta. La comparación se realiza sobre la combinación completa de expresiones seleccionadas: si eliges dos columnas, ambas deben coincidir para que dos filas sean duplicadas entre sí.

No limpia la tabla: DISTINCT solo cambia lo que devuelve esa consulta. Las filas originales continúan almacenadas.

La sintaxis básica

Estructura
SELECT DISTINCT columna1, columna2
FROM tabla;

DISTINCT se escribe una sola vez, inmediatamente después de SELECT. Se aplica a toda la lista de salida.

Ejemplo paso a paso

Ciudades de la tabla clientes, con repeticiones
idciudad
1Madrid
2Valencia
3Madrid
4Bilbao
5Sevilla
6Madrid
7Bilbao
8Valencia
9Madrid
10Zaragoza
11Sevilla
12A Coruña

Queremos una lista de ciudades diferentes y fácil de leer.

SQL
SELECT DISTINCT ciudad
FROM clientes
ORDER BY ciudad;
Resultado esperado
ciudad
A Coruña
Bilbao
Madrid
Sevilla
Valencia
Zaragoza

Cómo funciona

  1. La consulta obtiene la columna ciudad de todas las filas.
  2. DISTINCT conserva una sola fila por cada valor diferente.
  3. ORDER BY organiza la lista resultante; no participa en la eliminación de duplicados.
Comprueba tu comprensión

Si seleccionas DISTINCT ciudad, activo y Madrid aparece con activo 0 y 1, ¿cuántas combinaciones de Madrid quedan?

Un error habitual

Colocar DISTINCT entre las columnas

Ejemplo con error
SELECT ciudad, DISTINCT nombre
FROM clientes;

DISTINCT debe aparecer justo después de SELECT. No puedes aplicarlo a una sola columna dentro de la misma lista mientras dejas las demás fuera de la comparación.

Practica con datos

Laboratorio SQL

Resuelve la consulta

Pendiente

Escribe una consulta que devuelva las categorías diferentes de productos, ordenadas alfabéticamente.

Resultado esperado: 5 filas con categoria. Respeta el orden de filas solicitado.

Ver tablas y datos

Cargando la estructura del ejercicio…

La consulta usa datos ficticios y se ejecuta solo en este navegador.

Fuentes técnicas consultadas

Las referencias confirman que DISTINCT elimina filas duplicadas del resultado y que la comparación abarca todas las expresiones seleccionadas.

Comprueba si puedes explicarlo

Hay dos clientes distintos de Madrid. ¿DISTINCT ciudad, nombre los combina si sus nombres son diferentes?

Ver respuesta razonada

No. DISTINCT compara la fila completa del resultado. Para obtener una sola fila por ciudad, selecciona únicamente DISTINCT ciudad. Ninguna de esas consultas borra clientes.

Responde antes de abrir la explicación. Si necesitaste ayuda, cierra la respuesta y vuelve a explicarlo con tus palabras antes de dar la lección por aprendida.

Qué debes recordar

  • DISTINCT se escribe inmediatamente después de SELECT.
  • La combinación completa de columnas determina si dos filas son duplicadas.
  • DISTINCT no modifica ni elimina filas almacenadas.

A continuación: Continúa con Resume datos con COUNT, SUM, AVG, MIN y MAX.

Conceptos relacionados