Ejemplo.
Cliente de la relación (ssnum, nombre, código postal, dirección) PK (ssnum). ssnum es el número de seguro social.
SQL:
Select DISTINCT ssnum from customer where zipcode=1234 group by name
Esta instrucción SQL devuelve registros únicos para los del cliente que tienen código postal 1234. En los resultados finales se agrupan por su nombre.
Aquí DISTINCT no es necesario. porque está seleccionando ssnum, que ya es único porque ssnun es la clave principal. dos personas no pueden tener el mismo ssnum.
En este caso Select ssnum from customer where zipcode=1234 group by name
dará un mejor rendimiento que "... DISTINCT .......".
DISTINCT es una operación costosa en un DBMS.
Esas dos consultas no son lo mismo, ¿verdad? En el segundo, solo está seleccionando identificadores distintos, no nombres distintos también. – DisgruntledGoat
¿Esto no funcionará con ningún otro T-SQL, o no será más rápido con otro? –
¡Bueno, el segundo no funciona! Cualquier columna no incluida en la cláusula GROUP BY requiere una función de agregación. –