Ils sont essentiellement équivalents les uns aux autres (en fait, c'est ainsi que certaines bases de données implémentent DISTINCT
sous le capot).
Si l'un d'eux est plus rapide, ce sera DISTINCT
. En effet, bien que les deux soient identiques, un optimiseur de requête devrait détecter le fait que votre GROUP BY
ne profite d'aucun membre du groupe, juste de leurs clés. DISTINCT
rend cela explicite, vous pouvez donc vous en sortir avec un optimiseur un peu plus stupide.
En cas de doute, testez !