Compter le maximun d'une colonne
Résolu
Hamster18
Messages postés
176
Date d'inscription
Statut
Membre
Dernière intervention
-
Hamster18 Messages postés 176 Date d'inscription Statut Membre Dernière intervention -
Hamster18 Messages postés 176 Date d'inscription Statut Membre Dernière intervention -
Bonjour, j'ai une basse de donnée composer d'une table Stats( avec comme attribut Datematch(primary key), prenomnomS(clé étrangère) ..... ( et plein d'autre attribut qui ne sont pas utilise ici) ) & une table joueur ( avec comme attribut prenomnomJ (primary key) , taille, poids ....) . Je recherche à lister le(s) joueur(s) ayant joué le plus de match .
j'ai tenté la commande suivante :
cependant cela me sort ceci :
J'ai une partie des maximum, cependant je n'ai pas celui qui à fait le plus de match pendant la saison ( Larry Nance avec ses 132 matchs) mais je ne voit pas d'où vient mon erreur ... Quelqu'un pourrait m'aider s'il vous plait ?
Merci d'avance .
j'ai tenté la commande suivante :
SELECT count(Datematch), prenomnomJ FROM joueur J, stats S WHERE J.prenomnomJ=S.prenomnomS group by prenomnomJ having count(*)>= ALL ( SELECT count(*) FROM stats S2 group by S2.prenomnomS);
cependant cela me sort ceci :
COUNT(DATEMATCH) PRENOMNOMJ
---------------- ----------------------------------------
82 Joe Ingles
82 Karl-Anthony Towns
82 Tyus Jones
82 Yogi Ferrell
82 Bismack Biyombo
82 Dillon Brooks
82 Marcin Gortat
114 Tim Hardaway
82 E Twaun Moore
82 Lance Stephenson
82 Pat Connaughton
COUNT(DATEMATCH) PRENOMNOMJ
---------------- ----------------------------------------
82 Taj Gibson
82 LeBron James
82 Patrick Patterson
82 P.J. Tucker
82 Cory Joseph
82 Julius Randle
82 Andrew Wiggins
82 Darius Miller
82 Dragan Bender
82 Bradley Beal
82 Khris Middleton
COUNT(DATEMATCH) PRENOMNOMJ
---------------- ----------------------------------------
132 Larry Nance
82 Raymond Felton
24 rows selected.
J'ai une partie des maximum, cependant je n'ai pas celui qui à fait le plus de match pendant la saison ( Larry Nance avec ses 132 matchs) mais je ne voit pas d'où vient mon erreur ... Quelqu'un pourrait m'aider s'il vous plait ?
Merci d'avance .
1 réponse
-
yg_be Messages postés 23437 Date d'inscription Statut Contributeur Dernière intervention Ambassadeur 1 588
bonjour, tu dois commencer par faire une première requete qui te retourne, par joueur, le nombre de matchs joués.
ensuite une seconde requete qui te retourne le maximum du nombre de matchs retournés par la première
puis une troisième requete combinant les deux premières
il peut être utile de préciser le logiciel de base de données,-
Le logiciel est SQL +;
la commande qui retourne par joueur, le nombre de matchs joués.select count(Datematch), J.prenomnomJ from joueur J, stats S where J.prenomnomJ=S.prenomnomS group by J.prenomnomJ, equipejoueur;
Après ça se complique pour la 2nd requeteselect max(count(Datematch)) from stats S, joueur J where S.prenomnomS=J.prenomnomJ group by prenomnomJ;
et pour la 3eme ça me sort une erreur ...select count(Datematch), J.prenomnomJ from joueur J, stats S where J.prenomnomJ=S.prenomnomS group by J.prenomnomJ, equipejoueur having select max(count(Datematch)) from stats S, joueur J where S.prenomnomS=J.prenomnomJ group by prenomnomJ;
J'ai aussi essayé comme ceci :select prenomnomS, max(count(Datematch)) from stats S, joueur J where S.prenomnomS=J.prenomnomJ group by prenomnomJ;
et j'ai l'erreur suivante :ORA-00937: not a single-group group function
-
j'ai aussi tester en utilisant UNION qui permet d'unir 2 requêtes cepandant cela me sort aussi un message d'erreur du type :
le bloc de requête a un nombre incorrect de colonnes de résultat
la requête est :select max(count(Datematch)) from stats S, joueur J where S.prenomnomS=J.prenomnomJ group by prenomnomS UNION select count(Datematch), J.prenomnomJ from joueur J, stats S where J.prenomnomJ=S.prenomnomS group by J.prenomnomJ, equipejoueur;
-
-
-
-