Eles são essencialmente equivalentes entre si (na verdade, é assim que alguns bancos de dados implementam
DISTINCT
sob o capô). Se um deles for mais rápido, será
DISTINCT
. Isso ocorre porque, embora os dois sejam iguais, um otimizador de consulta teria que capturar o fato de que seu GROUP BY
não está tirando vantagem de nenhum membro do grupo, apenas de suas chaves. DISTINCT
torna isso explícito, para que você possa se safar com um otimizador um pouco mais burro. Na dúvida, teste!