Uso de DISTINCT en Oracle SQL: Filtrando Valores Únicos en Consultas

El operador DISTINCT en Oracle SQL es una herramienta fundamental para extraer valores únicos de un conjunto de datos. Permite eliminar duplicados en los resultados de una consulta y es especialmente útil cuando se desea analizar datos de manera más clara o preparar informes sin valores repetidos.


¿Qué es DISTINCT y cómo funciona?

El operador DISTINCT se utiliza en una instrucción SELECT para asegurar que los resultados no contengan filas duplicadas. Cuando se aplica a una o varias columnas, el operador considera la combinación única de valores en esas columnas para determinar qué filas incluir en los resultados.

Sintaxis básica:

SELECT DISTINCT columna1, columna2, ...
FROM tabla;

Ejemplo Básico del Uso de DISTINCT

Supongamos que tienes una tabla llamada EMPLE con las siguientes columnas y datos:

ID_EMPLEDEPARTAMENTOOFICIO
1VENTASANALISTA
2VENTASGERENTE
3MARKETINGANALISTA
4VENTASANALISTA
5MARKETINGGERENTE

Consulta con duplicados:

SELECT departamento
FROM emple;

Resultados:

VENTAS
VENTAS
MARKETING
VENTAS
MARKETING

Consulta utilizando DISTINCT:

SELECT DISTINCT departamento
FROM emple;

Resultados:

VENTAS
MARKETING
  • Aquí, DISTINCT elimina los valores repetidos en la columna departamento.

Uso de DISTINCT con Múltiples Columnas

Cuando se usa con varias columnas, DISTINCT considera la combinación única de valores en todas las columnas especificadas.

Ejemplo:

SELECT DISTINCT departamento, oficio
FROM emple;

Resultados:

VENTAS     ANALISTA
VENTAS     GERENTE
MARKETING  ANALISTA
MARKETING  GERENTE
  • El operador considera ambas columnas juntas para determinar cuáles son únicas.

Filtrando Datos con DISTINCT y WHERE

Puedes combinar DISTINCT con cláusulas como WHERE para aplicar filtros adicionales.

Ejemplo:

SELECT DISTINCT oficio
FROM emple
WHERE departamento = 'VENTAS';

Resultados:

ANALISTA
GERENTE

Uso de DISTINCT con Funciones Agregadas

DISTINCT también se puede utilizar dentro de funciones agregadas como COUNT para contar únicamente valores distintos.

Ejemplo:

SELECT COUNT(DISTINCT departamento) AS departamentos_unicos
FROM emple;

Resultados:

2
  • Aquí, se cuenta cuántos departamentos únicos existen en la tabla.

Ejemplo Avanzado: Combinación de DISTINCT con Ordenación

DISTINCT se puede combinar con ORDER BY para obtener valores únicos ordenados.

Ejemplo:

SELECT DISTINCT departamento
FROM emple
ORDER BY departamento ASC;

Resultados:

MARKETING
VENTAS
  • Primero se filtran los valores únicos y luego se ordenan alfabéticamente.

Errores Comunes al Usar DISTINCT

  1. Usar DISTINCT innecesariamente: Si la consulta ya produce resultados únicos debido al diseño de la tabla (por ejemplo, si estás seleccionando una columna con clave primaria), el uso de DISTINCT no tiene sentido.
  2. Confusión con GROUP BY: Aunque ambos eliminan duplicados en cierto sentido, GROUP BY se usa para agrupar datos y realizar cálculos agregados, mientras que DISTINCT simplemente filtra filas duplicadas.
  3. Problemas de rendimiento: El uso de DISTINCT en tablas grandes puede afectar el rendimiento, especialmente si no se utilizan índices adecuados.

Conclusión

El operador DISTINCT en Oracle SQL es una herramienta poderosa para eliminar duplicados y analizar datos únicos. Su uso correcto puede simplificar consultas y mejorar la claridad de los resultados. Sin embargo, debe aplicarse con cuidado para evitar impactos negativos en el rendimiento y consultas innecesariamente complejas.

Ya sea que estés generando informes o limpiando datos, dominar DISTINCT te ayudará a manejar tus consultas SQL de manera más eficiente y efectiva.

macbook pro
Photo by Pixabay on Pexels.com

Deja un comentario

Información básica sobre protección de datos Ver más

  • Responsable: Tomas Gonzalez.
  • Finalidad:  Moderar los comentarios.
  • Legitimación:  Por consentimiento del interesado.
  • Destinatarios y encargados de tratamiento:  No se ceden o comunican datos a terceros para prestar este servicio.
  • Derechos: Acceder, rectificar y suprimir los datos.
  • Información Adicional: Puede consultar la información detallada en la Política de Privacidad.

error: Content is protected !!

Descubre más desde Tomás González: Formador y Desarrollador Web

Suscríbete ahora para seguir leyendo y obtener acceso al archivo completo.

Seguir leyendo

Este sitio web utiliza cookies, si necesitas más información puedes visitar nuestra política de privacidad    Ver
Privacidad