Forum-webmaster
Technique - programmation => PHP / MySQL => Message commencé par: MagicManu le le 28-12-2003 a 15:10:50

Titre: Moyenne sur les 5 dernières lignes
Posté par: MagicManu le le 28-12-2003 a 15:10:50

Salut à tous,
je cherche à faire une moyenne sur une base MySQL sur les 5 dernières lignes d'un table, j'ai donc fait :


Code:
SELECT AVG(moyenne_votes) FROM annu_sites WHERE nom_proprio = 2 ORDER BY id DESC LIMIT 5

moyenne_votes est le champ dont je veux faire la moyenne.

ça marche mais ça fait la moyenne de TOUS les enregistrements du proprio N°2.
Une idée ?

Titre: Re:Moyenne sur les 5 dernières lignes
Posté par: trounday le le 28-12-2003 a 15:34:31

Et si tu mettais LIMIT 0,5

Titre: Re:Moyenne sur les 5 dernières lignes
Posté par: MagicManu le le 28-12-2003 a 15:43:52

Citation de: trounday le le 28-12-2003 a 15:34:31
Et si tu mettais LIMIT 0,5

bah ça marche pas, normalement ça ne sert à rien de préciser le début de la limite quand on part de 0

Titre: Re:Moyenne sur les 5 dernières lignes
Posté par: trounday le le 28-12-2003 a 16:05:02

Je ne sais pas du tout !!! Je ne peux pas t'aider l'ami...
Après une petite recherche sur la doc MySQL de Nexen je pu voir que ton script n'avait rien d'anormal mais bon j'ai pu manqué d'observation, en tout cas je suis out.

Par contre j'ai peut-être une idée mais bon ça peut être un belle merde:

Tu pourrais peut-être faire une premiere requete qui te selectionne les 5 premieres valeurs puis une deuxieme requete qui te fait la moyenne mais bon en même temps je ne sais pas comment tu peux faire ça.

Voilà désole, attend un peu les boss, ils mettent du temps à se reveiller le week-end... ^^

Titre: Re:Moyenne sur les 5 dernières lignes
Posté par: erwinol le le 28-12-2003 a 21:15:43

Le résultat de ta requete est logique. La clause LIMIT est appliquée sur les enregistrements qui vont s'afficher donc il affichera bien 5 enregistrements. Mais la moyenne va utiliser la totalité de la table correspondant à ta requete.

Il y a une solution très simple en SQL mais qui ne fonctionne pas sous mySQL.

Pourquoi ne pas utiliser une variable dans laquelle tu additionnerais les valeurs et tu divises par 5 à la fin ??

Titre: Re:Moyenne sur les 5 dernières lignes
Posté par: MagicManu le le 29-12-2003 a 10:32:57

Citation de: erwinol le le 28-12-2003 a 21:15:43
Pourquoi ne pas utiliser une variable dans laquelle tu additionnerais les valeurs et tu divises par 5 à la fin ??

Je crois que c'est ce qu'il me reste à faire, dommage de ne pas pouvoir profiter des requêtes, ça simplifierai beaucoup le code ::)

Et l'idée de trounday est-elle réalisable ? Faire 2 requêtes ? Je ne m'y connais pas beaucoup mais je ne pense pas car je crois qu'une requêtes annule la précedente :-\

Titre: Re:Moyenne sur les 5 dernières lignes
Posté par: FireLink le le 29-12-2003 a 14:00:01

Bah, non si elles sont stockées dans des variables différentes...


Forum-webmaster | Actionné par YaBB SE
© 2001-2003, YaBB SE Dev Team. Tous droits réservés.