A propos de GROUP BY
alix
-
jordane45 Messages postés 38486 Date d'inscription Statut Modérateur Dernière intervention -
jordane45 Messages postés 38486 Date d'inscription Statut Modérateur Dernière intervention -
Bonjour, je travaille sous python avec des requêtes sql. Ma table est student(studentid, nom, prenom, age, classe, lycee_origine, sexe). J'aimerais connaître le nombre de filles et de garçons par classe (en sachant qu'il y a trois classes différentes dans ma classe. J'ai donc écrit le code suivant :
"""SELECT classe, (SELECT COUNT(studentid) FROM student WHERE sexe='F' GROUP BY classe) AS 'nbfilles', (SELECT COUNT (studentid) FROM student WHERE sexe='M' GROUP BY classe) AS 'nbgarcons' FROM student GROUP BY classe"""
Mais mon programme me retourne trois fois les valeurs nombres de filles et de garcons de la première classe. Comment cela se fait-il ? comment résoudre ce problème ?
merci
"""SELECT classe, (SELECT COUNT(studentid) FROM student WHERE sexe='F' GROUP BY classe) AS 'nbfilles', (SELECT COUNT (studentid) FROM student WHERE sexe='M' GROUP BY classe) AS 'nbgarcons' FROM student GROUP BY classe"""
Mais mon programme me retourne trois fois les valeurs nombres de filles et de garcons de la première classe. Comment cela se fait-il ? comment résoudre ce problème ?
merci
[('MPSI1', 9), ('MPSI1', 8), ('MPSI2', 8), ('MPSI2', 4), ('PCSI', 7), ('PCSI', 4)]
en revanche j'aimerais avoir le résultat sous cette forme :
[('MPSI1', 9, 8), ('MPSI2', 8,4), ('PCSI', 7,4)]
aurais-tu un code à me proposer ?