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

Résolu/Fermé
persepolis7 Messages postés 58 Date d'inscription mercredi 10 janvier 2018 Statut Membre Dernière intervention 16 janvier 2019 - Modifié le 13 nov. 2018 à 13:13
persepolis7 Messages postés 58 Date d'inscription mercredi 10 janvier 2018 Statut Membre Dernière intervention 16 janvier 2019 - 13 nov. 2018 à 18:03
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 38262 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 27 octobre 2024 4 693
13 nov. 2018 à 14:22
Bonjour,

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


3
jee pee Messages postés 40380 Date d'inscription mercredi 2 mai 2007 Statut Modérateur Dernière intervention 27 octobre 2024 9 397
13 nov. 2018 à 14:26
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 mercredi 10 janvier 2018 Statut Membre Dernière intervention 16 janvier 2019 1
Modifié le 13 nov. 2018 à 14:38
j'essaierai tout à l'heure, merci
0
persepolis7 Messages postés 58 Date d'inscription mercredi 10 janvier 2018 Statut Membre Dernière intervention 16 janvier 2019 1
13 nov. 2018 à 18:03
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 40380 Date d'inscription mercredi 2 mai 2007 Statut Modérateur Dernière intervention 27 octobre 2024 9 397
Modifié le 13 nov. 2018 à 14:12
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 mercredi 10 janvier 2018 Statut Membre Dernière intervention 16 janvier 2019 1
13 nov. 2018 à 14:35
Il me semble que c'est ce que je cherche je regarderai tout à l'heure, merci
0