Todas las respuestas anteriores son correctas, para el caso de DISTINCT en una sola columna vs GROUP BY en una sola columna. Cada motor db tiene su propia implementación y optimizaciones, y si le importa la muy pequeña diferencia (en la mayoría de los casos), ¡entonces tiene que probar con un servidor específico Y una versión específica! Como las implementaciones pueden cambiar ...
PERO, si selecciona más de una columna en la consulta, ¡entonces DISTINCT es esencialmente diferente! Porque en este caso comparará TODAS las columnas de todas las filas, en lugar de solo una columna.
Entonces, si tienes algo como:
// This will NOT return unique by [id], but unique by (id,name)
SELECT DISTINCT id, name FROM some_query_with_joins
// This will select unique by [id].
SELECT id, name FROM some_query_with_joins GROUP BY id
Es un error común pensar que la palabra clave DISTINCT distingue filas por la primera columna que especificó, pero DISTINCT es una palabra clave general de esta manera.
Por lo tanto, debe tener cuidado de no tomar las respuestas anteriores como correctas para todos los casos ... ¡Podría confundirse y obtener los resultados incorrectos mientras que todo lo que quería era optimizar!