Page 1 sur 1
Moyenne avec AVG
Posté : 23 janv. 2008, 21:40
par stallaf
Bonjour à tous,
J'ai un soucis de compréhension ou d'utilisation avec AVG.
Obtenir le résultat de la moyenne d'un champ ne pose pas de problème. Par contre, comment calculer la moyenne de chaque valeur de ce champ. Je m'explique. Je souhaite afficher les moyennes de chaque vote de mes sondages du type :
Aimez-vous PHP FRANCE ? (346 votes)
réponse 1 : Ouaou, moi j'adooooooore (92 %)
réponse 2 : Ne se prononce pas (1%)
réponse 3 : Vous pouvez répéter la question (5%)
réponse 4 : Heu Joker ! (2%)
La table concernée comprend quatre champs dont celui des réponses et du nombre de votes.
Et là j'y arrive pas, pourtant mysql doit savoir faire. Comment récupère-t-on ces données et comment les traite-t-on pour l'affichage ?
Merci d'avance.
Posté : 24 janv. 2008, 09:40
par d0m
C'est pas très clair ce que tu racontes, veux tu dire que ta table est composé de 4 champs :
N°_de_reponse, nombre_de_vote, champ3, champ4
Et contient donc 4 élements : la réponse1, réponse 2, réponse3 et réponse 4 ?
Et tu veux une moyenne ou un pourcentage?
Posté : 24 janv. 2008, 10:45
par ouckileou
Modération :
stallaf, afin d'obtenir une réponse sur ce forum, il est indispensable de :
- Préciser quel est le SGBD utilisé ainsi que sa Version
- Poster la Structure des Tables utilisées dans la requête sous la forme d'un "CREATE TABLE ..."
(Vous pouvez exporter la structure d'une table via phpMyAdmin. Retirez les colonnes inutiles)
- Indiquer le message d'erreur SQL le cas échéant.
Pensez à utiliser les balises Code : Tout sélectionner
pour afficher les requêtes SQL,
la Structure des Tables et si nécessaire un échantillon des données.
Assurez vous également d'avoir suivi ces [url=http://www.phpfrance.com/forums/voir_sujet-19378.php]conseils de débogage[/url].
[/color]
Posté : 24 janv. 2008, 11:04
par stallaf
Dom, bonjour,
Ok c'est pas clair et mal présenté alors je corrige.
Ma base sondage contient quatre tables. L'une d'entre elle comprend quatre champs contenant bien sur des valeurs :
id_sondage : id_reponses : reponses : nb_votes :
1 : 1 : Ouaou, moi j'adooooooore : 318 :
1 : 2 : Ne se prononce pas : 3 :
1 : 3 : Vous pouvez répéter... : 17 :
1 : 4 : Heu, joker : 10 :
Je souhaite récupérer et afficher en pourcentage le nombre de chaque vote, ce qui donnera :
Aimez-vous PHP FRANCE ? (346 votes)
Ouaou, moi j'adooooooore - 318 votes - 92%
Ne se prononce pas - 3 votes - 1%
Vous pouvez répéter... - 18 votes - 5%
Heu Joker ! - 7 votes - 2%
Voilà, je souhaiterais récupérer les pourcentages ? Est-ce possible directement avec mysql ? Dans ce cas comment faire pour traiter les données renvoyées ?
Merci.
Posté : 24 janv. 2008, 11:13
par Sékiltoyai
Tu as reposé exactement la même question. Si un modérateur est passé, c'est pour que tu suives ses instructions, pas pour que tu répètes ce que tu as déjà dit…
Posté : 24 janv. 2008, 11:29
par stallaf
Hum...
Désolé mais le modérateur a posté son message alors que j'étais en train de rédiger le mien. (et effectivement je suis resté un long moment sur cette rédaction) Bref, je n'en avais pas connaissance. J'en ai pris bonne note.
Par contre, l'ambiance est souvent sévère ici. On peut se tromper, on débute, ce n'est pas forcément facile pour des débutants.
Enfin je croyais effectivement que c'était aux modérateurs d'intervenir et de faire éventuellement des reproches et des remarques, les autres, je vois pas.
Bien, comme je cherche de l'aide, peut-être mal exprimée mais pas à me faire taper sur les doigts ou pincer l'oreille, je vais m'abstenir et abandonner ce sujet.
Ah, au fait, Sékiltoyai, bonjour ou un truc du genre, bref les civilités, çà fait pas de mal.
Allez, bye.
(ce message sera peut-être effacé... nous verrons...)
Posté : 24 janv. 2008, 11:49
par d0m
Alors ce n'est pas une question de moyenne.
Pour avoir un pourcentage, il te faut :
- le nombre de vote de la réponse du sondage
Code : Tout sélectionner
SELECT nb_votes
FROM table
WHERE id_sondage=1
AND id_reponses=1
- le nombre total de vote pour le sondage
Ensuite le pourcentage est un simple calcul :
pourcentage = nb_votes_reponse * 100 / nb_votes_total
Il faut donc intégrer la 2ème requete en sous requête à la première et faire le calcul directement en SQL
Par contre, l'ambiance est souvent sévère ici. On peut se tromper, on débute, ce n'est pas forcément facile pour des débutants.
Il me semble que les débutants sont respectés et jamais envoié bouler d'après ce que j'ai vu
par contre il y des règles qui sont pécises et efficaces et qui prennent 5 min seulement à lire.
Elles sont là pour que les messages soient le plus clair possible et donc que la réponse arrive le plus rapidement et simplement possible.
Posté : 24 janv. 2008, 12:30
par stallaf
Merci d0m pour la solution.
Pour le reste, plus de commentaires, je ne souhaite pas polémiquer.
A tchao.