Mettre DISTINCT dans un COUNT est-il normalisé ?
bonjour,
Je devais compter le nombre de client ayant une commande, alors j'ai fait cela :
Code:
SELECT count(id_client) from commandes
biensur ça m'a retourné un chiffre faux si un client avait plusieurs commandes.
Si je n'avais pas à les compter, mais juste les lister, j'aurai fait cela :
Code:
SELECT DISTINCT id_client from commandes
.
Avant si j'étais en php j'aurai mis le résultat dans un tableau et compter.
Mais là (par fleme d'été), et par curiosité, j'ai testé de mettre le DISTINCT directement dans le count et miracle ça fonctionne !
Code:
SELECT count( DISTINCT id_client) from commandes
je suis assez étonné car en 20ans de SQL je l'avais jamais vu, ni appris ni lu.
alors ...?
je suis sous Postgresql, donc peut-être que c'est une spécificité de ce sgbb mais ça m'intrigue. je ne trouve aucune doc dessus sur la place du DISTINCT dans une requête SQL.
qu'en savez-vous ?