Este tutorial de SQL se centra en la palabra clave SQL DISTINCT en Oracle, y proporciona explicaciones, ejemplos y ejercicios. Para los ejercicios de esta lección, utilice este enlace.

Este tutorial forma parte de varios posts que explican cómo escribir consultas básicas en Oracle. Para leer otros posts relacionados con este tema, utiliza los siguientes enlaces:

  • Escribir sentencias SQL SELECT básicas
  • Operadores aritméticos SQL
  • Alias de columnas SQL
  • Concatenación de cadenas SQL
  • Palabra clave DISTINCT de Oracle

La palabra clave DISTINCT de Oracle

La visualización por defecto de las consultas de Oracle son todas las filas, incluyendo las duplicadas. La palabra clave Oracle DISTINCT en la cláusula SELECT se utiliza para eliminar las filas duplicadas y mostrar una lista única de valores.

Por ejemplo: supongamos que tenemos una tabla Customers, que contiene una lista de clientes de diferentes ciudades: 40 clientes de Londres, 30 de Liverpool y 30 de Manchester. Se le pidió que mostrara la lista de ciudades donde residen estos clientes:

SELECT cityFROM customers

Esta sentencia de Oracle no es muy útil ya que recupera 100 filas (Londres devuelve 40 veces, Liverpool devuelve 30 veces y Manchester devuelve 30 veces), mientras que nuestra intención era mostrar sólo 3 líneas.

Para resolver este problema y recuperar sólo valores únicos, utilice la palabra clave Oracle DISTINCT:

SELECT DISTINCT column_nameFROM table_name SELECT DISTINCT cityFROM customers

El resultado:

CITY------LondonLiverpoolManchester

Nota : La palabra clave Oracle DISTINCT debe incluirse inmediatamente después de la palabra clave Oracle SELECT.

Sentencia Oracle DISTINCT en múltiples columnas

Después de la palabra clave Oracle DISTINCT, es posible especificar más de una columna. El calificador Oracle DISTINCT afecta a todas las columnas seleccionadas, al hacerlo, el resultado mostrará la combinación única de valores de las diferentes columnas. Por ejemplo, una lista de clientes de diferentes ciudades y países:

Nombre del cliente Ciudad País
John Smith Liverpool Inglaterra
Sophia Williams Londres Inglaterra
Emma Miller Liverpool Inglaterra
Olivia Wilson París Francia
Logan Davis París Francia

Puedes ver que hay dos clientes deInglaterra, dos clientes de París-Francia, y otro cliente de Londres-Inglaterra.

Ejecutando la sentencia Oracle DISTINCT en la columna Country se obtienen 2 filas (Inglaterra, París).

SELECT DISTINCT countryFROM customers

Ejecutando la sentencia Oracle DISTINCT en la columna City se obtienen 3 filas (Liverpool, Londres, París).

SELECT DISTINCT city FROM customers

Si ejecuta la sentencia Oracle DISTINCT en las columnas City y Country:

SELECT DISTINCT city , countryFROM customers

Se recuperan tres resultados – Liverpool Inglaterra, Londres Inglaterra, París Francia.

Deja una respuesta

Tu dirección de correo electrónico no será publicada.