Précédent   Forum des professionnels en informatique > Bases de données > Langage SQL
Langage SQL Forum d'entraide sur le langage SQL et sur les questions liées à la conception de schéma (DDL). Cours SQL
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 07/08/2011, 19h14   #1
Membre confirmé
 
Homme
Conseil - Consultant en systèmes d'information
Inscription : août 2008
Messages : 543
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 25
Localisation : France, Corse (Corse)

Informations professionnelles :
Activité : Conseil - Consultant en systèmes d'information
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : août 2008
Messages : 543
Points : 255
Points : 255
Par défaut Faire un select count(choix) AS nbChoix

Bonjour, est il possible en SQL de faire une requête comme ceci ;

Code :
1
2
3
4
SELECT DISTINCT choix, (count( choix )) AS nbChoix
FROM `sondages`
GROUP BY choix
ORDER BY count(nbChoix) DESC
Parce que sur phpMyAdmin, le AS ne semble pas fonctionner sur un count.
__________________
Les statistiques et prévisions des principaux championnats européens sur : league-evolution.com
Marc22 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/08/2011, 21h34   #2
Modérateur
 
Inscription : octobre 2008
Messages : 1 508
Détails du profil
Informations personnelles :
Localisation : France, Paris (Île de France)

Informations forums :
Inscription : octobre 2008
Messages : 1 508
Points : 2 040
Points : 2 040
Il faudrait faire ORDER BY count(choix) ou bien ORDER BY nbChoix mais pas un mélange des deux.
estofilo est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/08/2011, 00h04   #3
Modérateur
 
Avatar de CinePhil
 
Homme Philippe Leménager
Ingénieur d'études en informatique
Inscription : août 2006
Messages : 11 019
Détails du profil
Informations personnelles :
Nom : Homme Philippe Leménager
Âge : 48
Localisation : France, Haute Garonne (Midi Pyrénées)

Informations professionnelles :
Activité : Ingénieur d'études en informatique
Secteur : Enseignement

Informations forums :
Inscription : août 2006
Messages : 11 019
Points : 18 304
Points : 18 304
Envoyer un message via MSN à CinePhil
1) DISTINCT + GROUP BY, c'est un pléonasme en SQL !
Supprimez le DISTINCT qui ne sert à rien.

2) Vous ne pouvez pas à la fois grouper sur les choix et les compter.
Si vous voulez compter le nombre de lignes de la table pour chaque valeur de la colonne choix, faites simplement un COUNT(*).

3) Inutile de laisser les apostrophes inversées qui ne servent à rien avec le nom de votre table qui ne comporte ni espace, ni caractères diacritiques et qui n'est pas un mot du langage SQL.

La requête serait plus simple écrite comme ceci :
Code :
1
2
3
4
SELECT choix, COUNT(*) AS nb
FROM sondages
GROUP BY choix
ORDER BY COUNT(*)
__________________
Philippe Leménager. Ingénieur d'étude à l'École Nationale de Formation Agronomique.
Mon blog sur la conception des BDD, le langage SQL, le PHP avec Zend Framework...
« Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau)
À la maison comme au bureau, j'utilise Mandriva Linux ou Mageïa ! Soutenons l'industrie logicielle française !
Linuxiens, comptez-vous !
CinePhil est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 08/08/2011, 11h20   #4
Membre éclairé
 
Avatar de boussafi
 
Homme
Ingénieur développement logiciels
Inscription : septembre 2007
Messages : 342
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : Algérie

Informations professionnelles :
Activité : Ingénieur développement logiciels
Secteur : Industrie

Informations forums :
Inscription : septembre 2007
Messages : 342
Points : 397
Points : 397
Envoyer un message via Yahoo à boussafi Envoyer un message via Skype™ à boussafi
il faut mettre


Code :
1
2
3
4
SELECT choix, (count( choix )) AS nbChoix
FROM `sondages`
GROUP BY choix
ORDER BY count(choix ) DESC
en certain sql, on peut ne pas mettre le AS.

la requete sera comme suite:

Code :
1
2
3
4
SELECT choix, (count( choix )) nbChoix
FROM `sondages`
GROUP BY choix
ORDER BY count(choix ) DESC
boussafi est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 12h55.


 
 
 
 
Partenaires

Hébergement Web