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 -
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
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
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
A voir également:
- Select count distinct access
- Please select boot device - Forum Matériel & Système
- Acer quick access - Forum logiciel systeme
- Quick Access service ✓ - Forum PC portable
- Désinstaller ACER QUICK ACCESS - Forum Logiciels
- Access appdata - Guide
2 réponses
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é :
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...
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
Nickel ! Il me manquait effectivement cette notion d'alias.
Daniel