Operador DISTINCT en SQL

¿Qué es el operador DISTINCT en SQL?

  operador DISTINCT en SQL

El operador DISTINCT en SQL se utiliza para eliminar duplicados en los resultados de una consulta. Es útil cuando deseas obtener una lista de valores únicos en una o más columnas de una tabla.

¿Cómo funciona operador DISTINCT en SQL?

DISTINCT se aplica a los resultados de una consulta, asegurando que cada fila devuelta sea única en base a las columnas especificadas. Si no se especifica ninguna columna, el operador considera todas las columnas de la tabla.

Sintaxis Básica

sql
SELECT DISTINCT nombre_columna 
FROM nombre_tabla;

  nombre_columna: Es el campo del que deseas obtener valores únicos.
  nombre_tabla: Es la tabla de la base de datos.

Ejemplo Básico

Imagina que tienes una tabla de empleados y deseas obtener una lista de ciudades en las que viven los empleados, sin duplicados.

Tabla: empleados

bash
| id  | nombre          | ciudad     |
|-----|-----------------|------------|
| 1   | Juan Pérez      | Bogotá     |
| 2   | María González  | Medellín   |
| 3   | Pedro Rodríguez | Bogotá     |
| 4   | Ana Martínez    | Cali       |
| 5   | Luis Fernández  | Medellín   |

Consulta:

sql
SELECT DISTINCT ciudad FROM empleados;

Respuesta:

bash
| ciudad     |
|------------|
| Bogotá     |
| Medellín   |
| Cali       |

Casos de Uso

1. Obtener valores únicos de una columna

Si quieres saber las categorías únicas de un producto en una tabla de inventario, puedes usar DISTINCT de la siguiente manera:

Tabla: productos

bash
| id  | nombre       | categoria   |
|-----|--------------|-------------|
| 1   | Laptop       | Electrónica |
| 2   | Smartphone   | Electrónica |
| 3   | Sofá         | Muebles     |
| 4   | Mesa         | Muebles     |
| 5   | Televisor    | Electrónica |
Consulta:
sql
SELECT DISTINCT categoria FROM productos;
Respuesta:
bash
| categoria   |
|-------------|
| Electrónica |
| Muebles     |

2. Usar DISTINCT con múltiples columnas

Puedes aplicar DISTINCT en varias columnas para obtener combinaciones únicas. Por ejemplo, si quieres saber qué combinaciones de ciudad y nombre de empleado existen:

Consulta:

sql
SELECT DISTINCT ciudad, nombre FROM empleados;
Respuesta:
bash
| ciudad     | nombre          |
  |------------|-----------------|
  | Bogotá     | Juan Pérez      |
  | Medellín   | María González  |
  | Bogotá     | Pedro Rodríguez |
  | Cali       | Ana Martínez    |
  | Medellín   | Luis Fernández  |

3. Contar valores únicos

Si deseas contar cuántas ciudades únicas hay en la tabla de empleados, puedes combinar DISTINCT con COUNT():

Consulta:
sql
SELECT COUNT(DISTINCT ciudad) AS total_ciudades FROM empleados;

Respuesta:

bash
| total_ciudades |
|----------------|
| 3              |
  Consideraciones Importantes

  • DISTINCT puede afectar el rendimiento si se aplica a grandes conjuntos de datos, ya que requiere que el sistema verifique duplicados.

  • Si utilizas DISTINCT con múltiples columnas, se considerarán las combinaciones únicas de esas columnas.

  • No olvides que NULL se considera un valor único, por lo que también aparecerá en los resultados.