|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | ||||
|
Nouveau Membre du Club
![]() Inscription : juin 2009 Messages : 121 ![]() |
Bonjour ,
Alors voila j'essaye de calculer la valeur moyenne d'une catégorie pour chaque mois et j'arrive pas du tous a trouver la requête donc j'ai essayé ceci Code :
Code :
Code :
AVG (rapport_position.position_moteur) AS moyenne |
||||
|
|
00
|
|
|
#2 | ||
![]() ![]() Alain Ingénieur d'études décisionnel Inscription : mai 2002 Messages : 4 445 ![]() |
Toutes les colonnes qui ne font pas l'objet d'une fonction de regroupement doivent être reprises dans la clause GROUP BY.
Dans ton cas, cela donnerait : Code :
__________________
Modérateur Langage SQL N'oubliez pas le bouton et pensez aux balises [code]Si une réponse vous a aidé à résoudre votre problème, n'oubliez pas de voter pour elle en cliquant sur ![]() |
||
|
|
00
|
|
|
#3 | ||
|
Membre Expert
![]() ![]() Inscription : janvier 2010 Messages : 1 084 ![]() |
Bonjour
Quel est votre SGBDR ? vous pouvez essayer ceci : Code SQL :
|
||
|
|
00
|
|
|
#4 | |
|
Membre Expert
![]() Pacman PacmanBusiness analyst Inscription : juin 2004 Messages : 1 417 ![]() |
Salut !
Citation:
Mais ce n'est pas vrai, ou du moins la formulation induit en erreur (comme le montre la solution que tu proposes au pif ensuite). => doivent être reprises dans la clause GROUP BY... ou sorties du SELECT... ou se voir appliquer un fonction de regroupement... ou ou ou. Pas de formule magique cela dit, dommage. En fait, tu peux de manière safe intégrer les colonnes dans le GROUP BY uniquement lorsque cela ne change pas la granularité des groupes, ce qui arrive en gros pour toutes les colonnes qui "dépendent" de la clef de regroupement. Genre quand la clef primaire d'une des tables de la requête est dans le GROUP BY, tu peux y ajouter de manière safe toutes les colonnes de cette table.
__________________
(c'est ma photo) Paku, Paku ! Pour les jeunes incultes : non, je ne suis pas un pokémon... Le pacblog : http://pacmann.over-blog.com/ |
|
|
00
|
|
|
#5 | ||
|
Nouveau Membre du Club
![]() Inscription : juin 2009 Messages : 121 ![]() |
Je me suis peut être mal expliqué :/ enfin voila le résultat que j essaye d'avoir
Code :
( Je suis en Mysql ) |
||
|
|
00
|
|
|
#6 | ||
|
Membre émérite
![]() Olivier DehorterIngenieur de recherche - Ecologue Inscription : juin 2003 Messages : 697 ![]() |
cela devrait fonctionner :
Code sql :
|
||
|
|
00
|
|
|
#7 |
|
Membre Expert
![]() Pacman PacmanBusiness analyst Inscription : juin 2004 Messages : 1 417 ![]() |
Non, il faut prendre la requête d'aieuuu et ajouter Id_adgroup dans le GROUP BY et dans le select.
(Car la ligne du 25-02 est regroupée avec les lignes du 28-02)
__________________
(c'est ma photo) Paku, Paku ! Pour les jeunes incultes : non, je ne suis pas un pokémon... Le pacblog : http://pacmann.over-blog.com/ |
|
00
|
|
|
#8 |
|
Membre Expert
![]() ![]() Inscription : janvier 2010 Messages : 1 084 ![]() |
il est également possible d'ajouter MAX(date_rapport) pour avoir la date du dernier rapport (avec le jours) en plus (ou à la place ) de l'année et du mois...
|
|
|
00
|
|
|
#9 | |
|
Membre émérite
![]() Olivier DehorterIngenieur de recherche - Ecologue Inscription : juin 2003 Messages : 697 ![]() |
Citation:
|
|
|
|
00
|
|
|
#10 | |||||
|
Nouveau Membre du Club
![]() Inscription : juin 2009 Messages : 121 ![]() |
Merci beaucoup
![]() Code :
Citation:
Code :
|
|||||
|
|
00
|
|
|
#11 |
|
Membre Expert
![]() ![]() Inscription : janvier 2010 Messages : 1 084 ![]() |
oui, mais vous êtes sous MySQL, et si un jour ça lui chante de sortir 2011-02-15 à la place de 2011-02-28, il ne privera pas, et ne vous demandera pas votre avis
Cette syntaxe n'est pas normalisée (voir la remarque de al1_24) et des dires même de la doc de MySQL, il ne faut pas le faire, et les résultats ne sont pas garanti. Bref, sur plusieurs dates, vous en voulez une, à vous de définir la règle de sélection en fonction de vos besoins : la date la plus ancienne (min), la plus récente (max)... |
|
|
10
|
|
|
#12 | ||||||
|
Nouveau Membre du Club
![]() Inscription : juin 2009 Messages : 121 ![]() |
Bonjour ,
Je ré-ouvre ce message , j'ai un autre petit problème , j'essaye de faire le contraire c 'est a dire calculer la valeur moyenne sur la date le plus ancienne dans mon cas (2011-01-28) Code :
Code :
Code :
|
||||||
|
|
00
|
|
|
#13 |
|
Membre Expert
![]() ![]() Inscription : janvier 2010 Messages : 1 084 ![]() |
Bonjour,
Vous prenez le MIN de la date, mais vous faites les moyenne sur toutes les données. Vous devez ajouter un filtre sur la date, pour ne faire la moyenne que sur les valeurs correspondant aux dates qui vous intéressent.... mais... Si vous n'avez qu'une seule ligne par date et par groupe, heu, une moyenne sur une seule valeur, c'est la valeur elle-même |
|
|
00
|
|
|
#14 | ||
|
Nouveau Membre du Club
![]() Inscription : juin 2009 Messages : 121 ![]() |
oki...
Code :
|
||
|
|
00
|
|
|
#15 |
|
Membre Expert
![]() ![]() Inscription : janvier 2010 Messages : 1 084 ![]() |
|
|
|
00
|
Copyright © 2000-2012 - www.developpez.com