Association de Distinct et Count [Résolu]

Signaler
Messages postés
64
Date d'inscription
samedi 18 février 2006
Statut
Membre
Dernière intervention
9 juin 2020
-
Messages postés
64
Date d'inscription
samedi 18 février 2006
Statut
Membre
Dernière intervention
9 juin 2020
-
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

Messages postés
29910
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
30 octobre 2020
2 902
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



Messages postés
64
Date d'inscription
samedi 18 février 2006
Statut
Membre
Dernière intervention
9 juin 2020
1
Bonjour Jordane45,

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

Daniel
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.