Association de Distinct et Count

Résolu
danielos77 Messages postés 108 Date d'inscription   Statut Membre Dernière intervention   -  
danielos77 Messages postés 108 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour à toute set à tous,

Comment puis-je écrire la requête qui me servira à alimenter un select à partir d'une table (une seule colonne en fait) en ayant d'un côté la liste distincte des valeurs mais en ayant aussi le nombre d'itération pour cette valeur ?

La liste des valeurs distinctes est relativement simple avec

$reponse = $bdd->query('SELECT DISTINCT ville FROM utilisateur');
			while ($donnees = $reponse->fetch())
			{
		echo '<option value="'.$donnees["ville"].'">'.$donnees["ville"].'</option>';
		    }


Connaître le nb de valeurs distinctes peut aussi s'obtenir avec COUNT dans 'SELECT COUNT(DISTINCT ville) FROM utilisateur' mais ce n'est pas ce que je veux malheureusement.

exemple avec dans ma colonne :
Paris
Lyon
Orléans
Lyon
Marseille
Paris
Lyon

j'aurai aimé avoir dans le select :
Lyon - 3
Marseille - 1
Orléans - 1
Paris - 2

Mais peut-être n'est pas possible avec une seule requête pour renseigner le select.

D'après la littérature, GROUP BY est plutôt utilisé pour faire des sommes et en remplaçant SUM par COUNT dans la fonction : ('SELECT DISTINCT ville, COUNT(ville) FROM utilisateur
GROUP BY ville');
ça ne donne rien. snif ;-(

Merci d'avance.
Daniel

Configuration: Windows / Firefox 77.0

2 réponses

jordane45 Messages postés 38486 Date d'inscription   Statut Modérateur Dernière intervention   4 752
 
Bonjour,

Ta question concerne la requête SQL ... ou ton code PHP ?
Car, de la façon dont tu l'as rédigée... on pourrait penser que c'est la requête qui te pose problème.... et dans ce cas.. c'est dans le forum Mysql que ta question aurait dû se trouver....

Quoi qu'il en soit... la requête que tu sembles avoir trouvé :
SELECT DISTINCT ville, COUNT(ville) 
FROM utilisateur
GROUP BY ville

devrait correspondre à ton besoin.
D'ailleurs, tu l'as testé DIRECTEMENT dans ta bdd ( via phpmyadmin par exemple) pour t'en assurer ??!!
Si ça ne te convient pas, explique ce que tu obtiens(donc dans phpmyadmin...) (avec une capture d'écran tant qu'à faire)

NB: N'oublie pas que tu peux mettre des "alias" dans les requêtes SQL pour pouvoir les manipuler plus simplement...
SELECT DISTINCT ville,  COUNT(ville)  as NB
FROM utilisateur
GROUP BY ville



1
danielos77 Messages postés 108 Date d'inscription   Statut Membre Dernière intervention   2
 
Bonjour Jordane45,

Nickel ! Il me manquait effectivement cette notion d'alias.

Daniel
0
Danielos
 
Bonsoir et merci Jordane45,
C'est bien la requête qui me pose pb.
J'ai pourtant cherché un forum sql... et pas mysql (le bourin).
Je teste dans phpmyadmin plus tard et donne le résultat.
Merci encore et bonne soirée.
0