Al realizar una consulta con SQL SELECT DISTINCT puedes obtener re­su­l­ta­dos con conjuntos de datos y filas únicas. SELECT DISTINCT elimina los du­pli­ca­dos de las filas y los grupos de datos elegidos y mejora la exactitud y claridad de tu análisis de datos.

¿Qué es SQL SELECT DISTINCT?

SELECT DISTINCT es un operador de pro­ce­sa­mie­n­to de SQL que se utiliza junto con el comando SQL SELECT. En la consulta, el comando SELECT se­le­c­cio­na una o múltiples columnas y conjuntos de datos. El operador DISTINCT elimina las filas y valores du­pli­ca­dos, de manera que en tus re­su­l­ta­dos de búsqueda solo ves líneas únicas distintas a las demás. Si combinas SELECT DISTINCT con otros ope­ra­do­res y comandos de SQL, puedes ajustar la consulta a tus ne­ce­si­da­des.

Di­fe­re­n­cias entre SQL SELECT DISTINCT y SELECT UNIQUE

Es posible que UNIQUE (único) y DISTINCT (distinto) se parezcan en si­g­ni­fi­ca­do, pero como ope­ra­do­res de SQL de­sem­pe­ñan funciones di­fe­re­n­tes. Para utilizar SQL SELECT DISTINCT co­rre­c­ta­me­n­te, debes saber en qué se di­fe­re­n­cian ambas funciones:

SQL SELECT DISTINCT SQL SELECT UNIQUE
Comprueba conjuntos de datos completos en busca de filas y valores du­pli­ca­dos, elimina las re­du­n­da­n­cias y devuelve re­su­l­ta­dos ine­quí­vo­cos y distintos Es idóneo para impedir la entrada de du­pli­ca­dos y valores dobles en tablas y columnas de­te­r­mi­na­das mediante li­mi­ta­cio­nes en las columnas
Se utiliza pri­n­ci­pa­l­me­n­te para obtener re­su­l­ta­dos claros y si­g­ni­fi­ca­ti­vos al evaluar, analizar y comparar conjuntos de datos Se usa en la creación y edición de tablas para ga­ra­n­ti­zar una mejor in­te­gri­dad de los datos sin re­du­n­da­n­cias
Consejo

¿Quieres iniciarte rá­pi­da­me­n­te en el lenguaje de pro­gra­ma­ción y bases de datos SQL? Nuestra guía de SQL con ejemplos te muestra los fu­n­da­me­n­tos de SQL y las funciones más im­po­r­ta­n­tes.

Ex­pli­ca­ción de la sintaxis de SELECT DISTINCT

La sintaxis de SELECT DISTINCT es sencilla:

SELECT  DISTINCT  ColumnaA, ColumnaB, …
FROM tabla
sql

Utiliza los si­guie­n­tes pa­rá­me­tros:

  • SELECT DISTINCT: El comando SELECT en co­m­bi­na­ción con el operador DISTINCT se­le­c­cio­na las columnas de las que quieres eliminar los du­pli­ca­dos en los re­su­l­ta­dos.
  • FROM: Se­le­c­cio­na la tabla en la que quieres buscar columnas con du­pli­ca­dos.
  • WHERE: Con la cláusula opcional SQL WHERE puedes añadir co­n­di­cio­nes es­pe­cia­les y limitar la consulta de datos a valores es­pe­cí­fi­cos.

Para qué sirve SELECT DISTINCT

Las opciones de uso de las consultas con SQL SELECT DISTINCT son prá­c­ti­ca­me­n­te ili­mi­ta­das. Algunos ejemplos:

  • Reducir datos de productos, clientes, pedidos o pacientes que aparecen varias veces en las filas a una única entrada
  • Contar e indicar cla­ra­me­n­te el número de compras de productos mediante los pedidos y el ide­n­ti­fi­ca­dor de producto
  • Consultar datos únicos de pacientes o clientes
  • Mostrar todas las di­re­c­cio­nes de envío o pro­vee­do­res de una región

Ejemplos prácticos de SQL SELECT DISTINCT

Para que veas cómo funciona SQL SELECT DISTINCT, ex­pli­ca­mos el operador con dos prácticos ejemplos de uso.

Consultar todos los clientes

Si quieres ver cla­ra­me­n­te todos los clientes de la tabla “Pedidos”, sin filas du­pli­ca­das por pedidos múltiples, procede de la siguiente manera:

SELECT  DISTINCT  Nombre de cliente
FROM  Pedido
sql

Filtrar clientes de una de­te­r­mi­na­da región

Con la cláusula WHERE puedes definir de manera más precisa la eva­lua­ción de clientes mediante co­n­di­cio­nes adi­cio­na­les. Si por ejemplo quieres consultar todos los clientes de la tabla “Pedidos” que vienen de Alemania, procede de la siguiente manera:

SELECT  DISTINCT  Nombre de cliente, País
FROM  Pedidos
WHERE  País =  'Alemania'
sql

Al­te­r­na­ti­vas a SQL SELECT DISTINCT

Aunque SELECT DISTINCT es una buena forma de eliminar los du­pli­ca­dos en una consulta de datos, DISTINCT no es siempre la mejor opción. Cuando trata con grandes conjuntos de datos, este operador requiere bastantes recursos al tener que comparar cada una de las columnas se­le­c­cio­na­das, por lo que en ocasiones merecerá la pena utilizar al­te­r­na­ti­vas con funciones similares. Algunas son:

  • GROUP BY: Con la cláusula SQL GROUP BY puedes agrupar los conjuntos de datos de columnas dadas y precisar con otras funciones y ope­ra­do­res. -EXISTS: Con SQL EXISTS puedes comprobar si hay de­te­r­mi­na­dos valores y conjuntos de datos en otra tabla.
  • COUNT: Si combinas DISTINCT con la función SQL COUNT, puedes contar valores únicos en las columnas.
  • SELECT + FROM + WHERE: Con una subquery, es decir, una consulta anidada en otra consulta, puedes acotar mejor los re­su­l­ta­dos. En la subquery eliges con SELECT las columnas se­le­c­cio­na­das, con FROM decides la tabla en la que se en­cue­n­tran las columnas y con WHERE de­te­r­mi­nas los criterios que deben cumplir los re­su­l­ta­dos.
Ir al menú principal