Requête SQL, le plus grand

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : Requête SQL, le plus grand

Re: Requête SQL, le plus grand

par yann18 » 07 déc. 2013, 18:01

bonjour,

Plus simple pour ne récupérer qu'une seule ligne max:
SELECT Race.LibelleRace, COUNT(Chien.NumChien) AS tot
FROM Race, Appartenir, Chien
WHERE Race.Id_Race=Appartenir.Id_Race
AND Appartenir.NumChien=Chien.NumChien
GROUP BY Race.LibelleRace ORDER BY tot DESC LIMIT 1

Sinon si plusieurs races ont le même nombre max de chiens par exemple Dalmatients :12, Boxer :12 la requête suivante aura l'avantage de retourner tous les maxis de chien par race:
SELECT Race.LibelleRace, COUNT(Chien.NumChien) AS tot
FROM Race, Appartenir, Chien
WHERE Race.Id_Race=Appartenir.Id_Race
AND Appartenir.NumChien=Chien.NumChien
GROUP BY Race.LibelleRace HAVING tot =(SELECT MAX(totChien) FROM
 					(
                                        SELECT Race.LibelleRace, COUNT(Chien.NumChien) AS totChien
					FROM Race, Appartenir, Chien
					WHERE Race.Id_Race=Appartenir.Id_Race
					AND Appartenir.NumChien=Chien.NumChien
					GROUP BY Race.LibelleRace 
					) as maxChien
					);




 

Requête SQL, le plus grand

par Scanf6 » 07 déc. 2013, 16:07

SELECT Race.LibelleRace, COUNT(Chien.NumChien) AS tot
FROM Race, Appartenir, Chien
WHERE Race.Id_Race=Appartenir.Id_Race
AND Appartenir.NumChien=Chien.NumChien
GROUP BY Race.LibelleRace;
Bonjour a tous, le code SQL ci dessus, permet d'afficher pour chaque races de chiens, le nombres de chien appartenant a ladite race, un peu dans le genre:
-Chihuahua: 5
-Boxer: 2
-Dalmatients: 12

Mon problème est que je veut maintenant pouvoir afficher la race ayant le plus grand nombre de chien(dans notre cas, "dalmatients"), je me suis dis qu'il fallait d'abord compter le nombre de chien par race, puis ensuite pouvoir retourner la plus grande valeur du COUNT, je ne sais pas comment, j'ai penser a une sous requête avec un MAX que j'ai tourner dans tout les sens mais en vain, merci de bien vouloir m'aider :)