Requete sql

WRInaute accro
Normalement je m'en sors bien à ce niveau mais la je galere sur un truc basique et je m'en sors pas.

J'ai une table avec 2 champs (dont un id) et dedans différents elements exemple:

1 a
2 b
3 a
4 a
5 a
6 b
7 c

et je voudrais tout simplement recuperer le nombre d'occurence de A, le nombre d'occurences de b etc... Sachant que à la place de a b et c j'ai beaucoup d'elements différents je peux pas les lister manuellement tellement il y en as.

Donc il faudrait une premiere requete qui liste les elements différents, et une deuxieme qui fasse un count where element ;-)
 
WRInaute accro
Merci ça m'a mit sur la bonne voie:

Code:
 SELECT url, count( url )
FROM membres
GROUP BY count( url )
ORDER BY COUNT( url ) ASC
LIMIT 0 , 30

Tout marche sauf le ORDER BY il me dit:

MySQL a répondu:Documentation
#1111 - Invalid use of group function

si je l'enleve ca marche sauf que ca me les classes pas par ordre deroissants. J'ai regardé sur google et je vois pas mon erreur au niveau du "order by"
 
WRInaute impliqué
Normal, tu ne peux que trier sur un nom de champ. Si t'as beaucoup d'enregistrements le tri ralentira la requête si c'est pas sur un champ indexé (clé primaire ou index).
Code:
SELECT url, count( url ) as nb_url
FROM membres
GROUP BY nb_url ASC
 
WRInaute accro
J'avais fait une faute de frappe pour le group by ;-)

et donc merci j'ai comprit en plus mon erreur du order by requete finale:

SELECT url, count(url) as nb_url FROM membres GROUP BY url order by nb_url DESC


Merci bien monsieur :-)
 
WRInaute accro
Je ne suis pas sur que ça puisse marcher, il faut d'abord faire le décompte, et ensuite seulement faire le classement.

Donc ce n'est pas possible de trier sur un comptage.

Le mieux serait de créer un fichier spécial généré par ta première requete, avec l'url et le nombre.

Ensuite tu affiches la table résultante. Avantage, rapidité d'execution, et tu execute le script toutes les 24h pour éviter de surcharger ta bécanne en requetes.
 
WRInaute accro
La requete que j'ai mise ci dessus marche impec, je l'ai testé sur mysql front, ca me renvoit bien se qu'il faut, mais quand je passe par php pour l'afficher j'ai le droit à ça:

Warning: mysql_query(): Unable to save result set in xxxxx.php on line 7
 

➡️ Offre MyRankingMetrics ⬅️

pré-audit SEO gratuit avec RM Tech (+ avis d'expert)
coaching offert aux clients (avec Olivier Duffez ou Fabien Faceries)

Voir les détails ici

coaching SEO
Discussions similaires
Haut