Page 1 sur 1

Statistique sur les résultats les plus donné dans une table

Posté : 04 juin 2008, 21:15
par lord_cedy
Hello,
Je ne sais pas si j'ai besoin de vacances mais j'ai beau tourner le problème dans tous les sence je ne trouve pas.

J'ai donc une table dans ma DB qui contien des codes (une infinité) il se peut de temps en temps qu'il y ai des doublons.

J'aimerais affiché les 10 doublons les plus souvent donnés.

Ma table contien un une colone "id" et une colone "code"

J'ai pondu cette abération la :

Code : Tout sélectionner

$query = "SELECT avg(`code`) AS moyenne FROM euro2008 limit 10 order by code"; $result = mysql_query($query); $num_results = mysql_num_rows($result); for ($i=0; $i <10; $i++) { $row = mysql_fetch_array($result); echo $row['code']; }
Comme vous l'imaginez cela ne peut pas fonctionner.

quelqun pourrait me sauver la vie ? ;)

Posté : 04 juin 2008, 23:02
par ouckileou
Oui je ne vois pas ce que vient faire une moyenne là-dedans.

Moi je compterais simplement le nombre d'occurrences de chaque donnée et je prendrais les 10 qui ont le plus gros total.
En utilisant donc : COUNT, GROUP BY et LIMIT

Posté : 04 juin 2008, 23:30
par lord_cedy
re.

En fait mon problème se situe sur le nombre de codes dans ma table et si je dois compter le nombre de résultats pour chaque code cela risque de prendre un moment ou de saturer ma base de donnée (+-15000 visites par jour)
n'y aurait'il pas une requête sql faite pour ce genre de cas ?

Posté : 04 juin 2008, 23:47
par ouckileou
n'y aurait'il pas une requête sql faite pour ce genre de cas ?
SI, les mots en majuscules de mon précédent message.

Posté : 04 juin 2008, 23:53
par lord_cedy
oups :)

Oui donc comme je l'ai expliqué dans mon 1er message, j'ai besoin de vacances ..
j'avais pas lu le count .. effectivement c tout con a faire ;).

Pour les autres, voici le code

Code : Tout sélectionner

$query = "SELECT `id` , `code` , COUNT( `code` ) FROM euro2008 GROUP BY `code` ORDER BY 'COUNT(`code`)' ASC LIMIT 10 "; $result = mysql_query($query); $num_results = mysql_num_rows($result); for ($i=0; $i <10; $i++) { $row = mysql_fetch_array($result); echo $row['code']."<br>"; }
Merci ..

++