
DISTINCT y GROUP BY normalmente generan el mismo query plan, por lo que el rendimiento debería ser el mismo con ambas construccines. Si sólo necesitas quitar los duplicados utiliza DISTINCT. Si lo que necesitas es un query plan basado en subconsultas, con lo que las consultas podrían cambiar los resultados, tienes que comprobar el plan de ejecución antes de tomar una decisión sobre qué opción es más rápida.
Ejemplo de DISTINCT:SELECT DISTINCT Employee, Rank
FROM Employees
Ejempo de GROUP BY:SELECT Employee, Rank
FROM Employees
GROUP BY Employee, Rank
Este artículo es una traducción de otro, que me resultó de utilidad en su día, y cuyo enlace es el siguiente: https://blog.sqlauthority.com/2007/03/29/sql-server-difference-between-distinct-and-group-by-distinct-vs-group-by/
Ejemplo de GROUP BY con una función agregada:SELECT Employee, Rank, COUNT(*) EmployeeCount
FROM Employees
GROUP BY Employee, Rank