Compter le maximun d'une colonne [Résolu]

Messages postés
51
Date d'inscription
mercredi 2 janvier 2019
Statut
Membre
Dernière intervention
28 septembre 2019
- - Dernière réponse : Hamster18
Messages postés
51
Date d'inscription
mercredi 2 janvier 2019
Statut
Membre
Dernière intervention
28 septembre 2019
- 28 sept. 2019 à 13:52
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 :
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 .
Afficher la suite 

1 réponse

Messages postés
8634
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
4 octobre 2019
430
0
Merci
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,
Hamster18
Messages postés
51
Date d'inscription
mercredi 2 janvier 2019
Statut
Membre
Dernière intervention
28 septembre 2019
-
D'accord de la j'ai donc :

select max(count(Datematch)) as nbMax from stats S group by S.prenomnomS;


et

 select count(Datematch), S.prenomnomS nomJ from stats S group by S.prenomnomS, equipejoueur;    


mais comment faire pour les relier ? suis-je partie sur les bonne "piste " avec mes précédente tentatives ?
yg_be
Messages postés
8634
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
4 octobre 2019
430 > Hamster18
Messages postés
51
Date d'inscription
mercredi 2 janvier 2019
Statut
Membre
Dernière intervention
28 septembre 2019
-
bizarre que la clause "group by" ne soit pas la même dans les deux requêtes, non?
il manque une clause AS dans une des requêtes.
adapte cela.
il faut ensuite faire une jointure entre les deux requêtes.
pour comprendre le principe et tester la syntaxe, commence par faire:
select r1.*, r2.* from
(le texte complet de la première requête) as r1,
(le texte complet de la seconde requête) as r2
il faut mettre le texte complet de chaque requête entre parenthèses
Hamster18
Messages postés
51
Date d'inscription
mercredi 2 janvier 2019
Statut
Membre
Dernière intervention
28 septembre 2019
-
Ah oui !!!!! c'est bon ma requête fonctionne !! cependant es que vous pourriez m'expliquer ce que signifie cette ligne
select r1.*, r2.* from

C'est un peu comme si on déclarais un pointeur mais en SQL ? (désoler si cette question semble un peu bête mais c'est la première fois que je voit ce type de syntaxe du coup j'aimerait comprendre )
yg_be
Messages postés
8634
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
4 octobre 2019
430 > Hamster18
Messages postés
51
Date d'inscription
mercredi 2 janvier 2019
Statut
Membre
Dernière intervention
28 septembre 2019
-
c'est simplement pour sélectionner tous les champs d'une source, sans les nommer.
peux-tu alors marquer le sujet comme résolu?
Hamster18
Messages postés
51
Date d'inscription
mercredi 2 janvier 2019
Statut
Membre
Dernière intervention
28 septembre 2019
-
D'accord merci beaucoup bonne journée a vous
Commenter la réponse de yg_be