Compter les occurences et afficher les 5 plus grands / requête SQL

Résolu
persepolis7 Messages postés 61 Statut Membre -  
persepolis7 Messages postés 61 Statut Membre -
Bonjour,

je souhaite compter les occurences des produits, puis afficher les 5 qui reviennent le plus.

Soit une table commande avec les colonnes suivante : IdCmd, IdClient, IdProduit

j'ai essayé ceci :

IdProduit COUNT(*) AS occurence occ FROM commande GROUP BY occ.IdProduit


ça m'affiche tout les produits présent dans la table et leurs occurence, or je voudrais selectionner uniquement les 5 plus grands

il faut utiliser WHERE ?

2 réponses

  1. jordane45 Messages postés 30427 Date d'inscription   Statut Modérateur Dernière intervention   4 833
     
    Bonjour,

    En fait, tu peux simplement ajouter à ta requête un ORDER BY
    et un LIMIT

    3
    1. jee pee Messages postés 31968 Date d'inscription   Statut Modérateur Dernière intervention   10 010
       
      tu as raison c'est beaucoup mieux, je ne pense pas toujours au LIMIT car cela n'existe pas sur Oracle, il faut le simuler
      0
    2. persepolis7 Messages postés 61 Statut Membre 1
       
      j'essaierai tout à l'heure, merci
      0
    3. persepolis7 Messages postés 61 Statut Membre 1
       
      Oui ça fonctionne, j'avais pas pensé au ORDER BY et LIMIT.

      SELECT IdProduit, COUNT( * ) as occurence FROM commande cmd GROUP BY cmd.IdProduit ORDER BY occurence DESC LIMIT 0, 5


      merci :)
      0
  2. jee pee Messages postés 31968 Date d'inscription   Statut Modérateur Dernière intervention   10 010
     
    Bonjour,

    Ce qu'il faut que tu étudies, c'est la clause
    group by ... having count 
    .

    https://www.w3schools.com/sql/sql_having.asp

    0
    1. persepolis7 Messages postés 61 Statut Membre 1
       
      Il me semble que c'est ce que je cherche je regarderai tout à l'heure, merci
      0