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

Résolu
persepolis7 Messages postés 58 Date d'inscription   Statut Membre Dernière intervention   -  
persepolis7 Messages postés 58 Date d'inscription   Statut Membre Dernière intervention   -
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

jordane45 Messages postés 38486 Date d'inscription   Statut Modérateur Dernière intervention   4 752
 
Bonjour,

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


3
jee pee Messages postés 41515 Date d'inscription   Statut Modérateur Dernière intervention   9 717
 
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
persepolis7 Messages postés 58 Date d'inscription   Statut Membre Dernière intervention   1
 
j'essaierai tout à l'heure, merci
0
persepolis7 Messages postés 58 Date d'inscription   Statut Membre Dernière intervention   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
jee pee Messages postés 41515 Date d'inscription   Statut Modérateur Dernière intervention   9 717
 
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
persepolis7 Messages postés 58 Date d'inscription   Statut Membre Dernière intervention   1
 
Il me semble que c'est ce que je cherche je regarderai tout à l'heure, merci
0