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 832
     
    Bonjour,

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

    3
    1. jee pee Messages postés 31927 Date d'inscription   Statut Modérateur Dernière intervention   9 992
       
      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 31927 Date d'inscription   Statut Modérateur Dernière intervention   9 992
     
    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