Forum Clubic

Avoir classement suivant un champ compteur

Bonjour,

Voila ma question :

Je fais un petit moteur de stats en php sur les pages vues de mon site. J’ai un champ ‘ville’. et j’aimerai (en mysql soit en php ou les 2) savoir le nombre de fois qu’il y’a chaque ville pour chaque article afin de dire la ville la - vue, la ville la + vue. (sachant que je connais pas dés le départ le nom de toutes les villes). Il y’a biensur un champ ‘vue’ qui me sert de compteur incrémenté à chaque visionnage de la news

je donne un exemple :


id     | ville     | vue     |
1      | paris     | 20      |
2      | lyon      | 40      |
3      | lens      | 30      |
4      | paris     | 10      |
5      | lyon      | 5       |
6      | paris     | 50      |

je voudrai ressortir un classement du genre

la ville la plus vue est : PARIS avec 80 vue
la ville la moins vue est : LENS avec 30 vue

J’espere m’etre bien fait comprendre car c’est pas évident

merci par avance
Edité le 11/04/2008 à 20:30

Genre:

(SELECT id, ville, vue, 'minimum' AS minOrMax
FROM villes
WHERE vue IN(SELECT MIN(vue) FROM ville)
ORDER BY ville ASC
LIMIT 1)
UNION
(SELECT id, ville, vue, 'minimum' AS minOrMax
FROM villes
WHERE vue IN(SELECT MAX(vue) FROM ville)
ORDER BY ville ASC
LIMIT 1)

Vérifie ce que ça donne mais normalement ça devrait se rapprocher de ce que tu veux.
Edité le 11/04/2008 à 18:29

merci de ton aide… en fait je donne la réponse qui m’a été donné sur un autre forum et qui marche

SELECT ville, SUM(vue) AS vues
FROM `table`
GROUP BY ville
ORDER BY vues ASC
LIMIT 1

il suffit de changer ASC en DESC pour avoir le plus vue et le limit 1 en 10 par exemple pour avoir un top 10