En la consulta SQL planteada en la pregunta, se está utilizando el operador COUNT(DISTINCT)
sobre la columna EmployeeName
en la tabla Employees
. Vamos a desglosar esto para entender mejor.
En SQL, COUNT
es una función de agregado que devuelve el número de filas que coinciden con un criterio especificado. Por otro lado, DISTINCT
se usa para eliminar duplicados de los resultados de una consulta. Por lo tanto, cuando se combinan en COUNT(DISTINCT)
, esta consulta devolverá el número de valores únicos en la columna que se haya especificado.
Por ejemplo, si la tabla Employees
tiene mil filas pero solo 200 nombres de empleado únicos, SELECT COUNT(DISTINCT EmployeeName) FROM Employees
devolverá '200'.
Es importante mencionar que COUNT(DISTINCT)
se emplea cuando se precisa el número de elementos únicos en un conjunto y no el total de entradas. En nuestra consulta ejemplo, no estamos interesados en saber cuántos empleados hay en total (qué tan grande es la tabla), sino cuántos nombres de empleado diferentes existen en ella.
Al trabajar con operadores de agregado como COUNT()
, DISTINCT
, entre otros, es útil mantener en mente algunas buenas prácticas:
DISTINCT
con precaución. En tablas grandes, puede ser costoso en términos de rendimiento.COUNT(DISTINCT)
o simplemente COUNT()
.Entender y utilizar correctamente los operadores de SQL como COUNT(DISTINCT)
puede marcar la diferencia entre una base de datos performante y eficiente o una lenta e improductiva.