[Php/Sql] Faire un classement avec des moyenn

Bonjour,

Je galère un peu sur un problème là...

En gros, j'ai une table SQL appelée 'AVIS', où j'enregistre les avis que les utilisateurs donnent sur tel ou tel produit.

Du coup dans ma table AVIS, il y a le champ 'ID_PRODUIT' qui permet d'identifier le produit, et le champ 'NOTE' qui va de 1 à 5 et qui donne... La note du produit.

J'essaye de faire un classement pour afficher les 3 produits dont la note moyenne est la plus haute... Mais j'ai vraiment aucune idée de comment faire.

Une petite aide, même juste un début de solution, serait bienvenue !

Merci, bonne journée.

2 réponses

  1. Salut,

    Dans ta requête SQL, tu pourrais utiliser un order by desc pour les notes.
    et utiliser limit 0, 3 quelque chose comme ça pour sélectionner les 3 produits.

    Sans oublier les jointures pour rechercher aussi les informations que tu as besoin sur les autres tables.
    0
    1. Okay merci, je vais essayer de voir tout ça !
      0
    2. Bon, j'ai essayé... Rien de bien concluant.
      J'ai l'impression que cette solution pourrait marcher si je voulais juste classer les notes et pas les moyennes de toutes les notes pour un produit.
      0
    3. Pour compléter.. (désolé c'est le matin j'avais totalement zappé cette histoire de moyenne.)
      Essaye avec une sous-interrogation et AVG qui calcule la moyenne.
      0
  2. SELECT id_produit, AVG( note ) max_note
    FROM 'avis'
    GROUP BY id_produit
    ORDER BY max_note DESC
    LIMIT 0 , 2
    0