[RESOLU] Ne compter dans classement seulement WHERE count > 5

Ne compter dans classement seulement WHERE count > 5 [RESOLU] - PHP - Programmation

Marsh Posté le 01-01-2008 à 21:08:59    

Bonjour, pour mon site de quiz, j'utilise une table qui contient les notes que tout les membres donnent aux quiz, chaque note correspond à un enregistrement. Pour ressortir mon TOP3 des quiz le splus populaires selon la moyenne des notes associé au quiz dans la table, j'utilise cette requête :
 
$query = "SELECT setid, AVG(rating) AS moyy FROM ratings GROUP BY setid DESC ORDER BY moyy DESC LIMIT 0, 3";  
 
Je désire pousser encore un peu plsu cette requête pour qu'il ne prenne en compte que les 'setid' comptant au moins 5 enregistrement dans la table. Je suis un peu perdu sur ce cas, quelqu'un peut m'aider ?
 
Bonne année à tous! :pt1cable:  
 
Merci pour votre précieuse aide!


Message édité par seozus le 01-01-2008 à 23:38:28

---------------
www.failqc.com : FailBlog québécois
Reply

Marsh Posté le 01-01-2008 à 21:08:59   

Reply

Marsh Posté le 01-01-2008 à 23:31:44    

Il faut ajouter une clause "having" après ton "group by" :

select
   setid,
   avg(rating) as moyy
from ratings
group by setid
having count(setid) > 5


   

Reply

Marsh Posté le 01-01-2008 à 23:35:03    

Je fais du PHP depuis super longtemps et je n'ai jamais su l'existence de HAVING!
 
Tout fonctionne, un énorme merci à toi!


---------------
www.failqc.com : FailBlog québécois
Reply

Marsh Posté le 01-01-2008 à 23:37:41    

C'est qu'il ne s'agit pas de PHP, mais de SQL. ;)

Reply

Marsh Posté le 01-01-2008 à 23:38:15    

Bah on se comprend :P


---------------
www.failqc.com : FailBlog québécois
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed