SQL SELECT DISTINCT: Devuelve valores Únicos

La cláusula SQL SELECT DISTINCT esta consulta se utiliza para eliminar las columnas repetidas del conjunto de resultados. El comando SELECT en SQL lee todos los datos y DISTINCT solo permite valores no repetidos.

Nos ayuda cuando queremos evitar valores duplicados en una consulta SQL. Los valores únicos se obtienen cuando usamos la palabra clave DISTINCT.

Sintaxis SQL SELECT DISTINCT

La sintaxis de la cláusula DISTINCT en SQL es:

SELECT DISTINCT expresión
FROM tabla
[WHERE condición];

Parámetros o Argumentos

expresiones:
Las columnas.
Tabla:
La tabla de donde proviene la consulta. debe estar después de FROM.
where condiciones:
Opcional. Las condiciones que se deben cumplir para que los registros sean seleccionados.

¿Cómo funcionan SELECT con la palabra clave DISTINCT en SQL?

La palabra clave SQL SELECT DISTINCT en SQL Server filtra los valores duplicados de nuestros resultados devueltos. Para una mayor simplificación de su funcionamiento, podemos verlo de la siguiente manera:

  • Una sentencia SQL SELECT DISTINCT primero crea nuestro conjunto de resultados general con todos los registros, es decir, incluye valores duplicados basados ​​en sentencias FROM, JOIN, WHERE, HAVING, etc.
  • A continuación, ordena el conjunto de resultados según el nombre de la columna o el campo con el que se ha utilizado DISTINCT.
  • Luego elimina cualquier valor duplicado en el conjunto de resultados

La instrucción SQL SELECT DISTINCT se puede considerar semánticamente equivalente a GROUP BY con todos los campos devueltos mencionados en la cláusula GROUP BY.

Habiendo discutido la sintaxis y el funcionamiento de las declaraciones SQL SELECT DISTINCT, sigamos adelante y probemos algunos ejemplos para desarrollar una gran comprensión de este concepto.

SQL Select Distinct columna única distinta

En este ejemplo, seleccionamos los registros no repetidos presentes en la columna Educación.

SELECT DISTINCT Ciudad
  FROM  Empleado

sql select distinct

SQL Select Distinct columnas múltiples

Cuando usamos este en varias columnas, la declaración SELECT devuelve la combinación no repetida de varias columnas en lugar de registros individuales únicos. En este ejemplo, seleccionamos los registros combinados únicos presentes en la Columna de Educación y la Columna de Ingreso Anual.

SELECT DISTINCT Nombre, Ciudad 
FROM Empleado 

Cláusula SQL DISTINCT WHERE

Usando el distinto junto con la Cláusula WHERE . La siguiente declaración única devolverá los valores de educación únicos cuyo ingreso anual sea superior a 5000

SELECT DISTINCT Nombre, Ciudad
   FROM Empleado
  WHERE  tota_ingresos > 5000

DISTINCT considera los registros NULL como un registro distintivo válido. 
Por lo tanto, utilice cualquier función Not Null ( NOT NULL ) para eliminar NULLS

SQL Distinct Group By  por ejemplo

También nos permite usar Funciones Agregadas junto con Agrupar por Cláusula. La siguiente consulta única agrupa a los empleados por Educación. A continuación, encuentra la Suma de Ingresos Anuales única para cada grupo de Educación.

SELECT Educación
 ,SUM(DISTINCT  Ingresos_anuales) AS  Tota_ingresos 
  FROM Empleado
  GROUP BY Educación

Ejemplo de conteo

La consulta SQL Select Distinct Count es una de las consultas que más se hacen en SQL server. Este ejemplo cuenta y devuelve los identificadores de empleados distintivos en cada grupo educativo.

SELECT Educación ,COUNT(DISTINCT ID) AS Total_empleado 
FROM Empleado 
GROUP BY Educación

Conclusión

SQL DISTINCT es una cláusula que se puede emplear dentro de las declaraciones SELECT para erradicar valores duplicados y producir solo valores o registros únicos. Funciona por columna, lo que significa que, si se desea eliminar duplicados basados ​​en múltiples columnas, se requiere la utilización de la cláusula GROUP BY.

  •  La cláusula DISTINCT, cuando se utiliza dentro de una declaración SELECT, tiene el propósito de eliminar filas duplicadas. La salida resultante consta solo de valores únicos, lo que simplifica de manera efectiva los datos para su posterior análisis o manipulación.
  • La sintaxis básica para emplear la cláusula DISTINCT en SQL server, sigue el formato: SELECT DISTINCT columna FROM tabla. En el caso de que varias columnas requieran valores distintos, la lista de nombres de columna se puede ampliar dentro de la consulta.
  • Esta declaración se puede usar con agregados: COUNT, AVG, MAX, etc. 
  • Los escenarios de uso comunes para la cláusula DISTINCT en SQL incluyen, entre otros, la eliminación de duplicados, el recuento de valores únicos, la agregación de datos y la generación de una lista de valores únicos.
  • Las ventajas de utilizar la cláusula DISTINCT incluyen el ahorro de tiempo y esfuerzo, la reducción del tamaño del conjunto de datos y la mejora en el significado.
  • La cláusula DISTINCT funciona en una sola columna, por lo que requiere una combinación de la cláusula DISTINCT y la cláusula GROUP BY para eliminar los duplicados en varias columnas.
  • Consideraciones de rendimiento: las implicaciones de rendimiento de la cláusula DISTINCT dependen del tamaño del conjunto de datos y la complejidad de la consulta en cuestión. Como tal, es recomendable optimizar las consultas para el rendimiento y la escalabilidad.
  • El mejor uso de la cláusula DISTINCT en SQL server abarcan la utilización de índices, pero si procurara evitar la subconsultas y el mantenimiento de un tamaño mínimo de conjunto de datos.

Deja un comentario