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

Petit nouveau ! | 3 Messages

04 juin 2008, 21:15

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 ? ;)

Modérateur PHPfrance
Modérateur PHPfrance | 6373 Messages

04 juin 2008, 23:02

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

Petit nouveau ! | 3 Messages

04 juin 2008, 23:30

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 ?

Modérateur PHPfrance
Modérateur PHPfrance | 6373 Messages

04 juin 2008, 23:47

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.

Petit nouveau ! | 3 Messages

04 juin 2008, 23:53

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 ..

++