2009-04-20 2 views
0

"応答"フィールドからAVG()フィールドをフェッチしようとすると、この非常に奇妙な結果が発生します。MySQLのAVG()の値がすべての行でリセットされない

問合せ:

SELECT AVG(Reponse.note) as noteMoyenne, Categorie.titre, 
     Autorisation.typeEvaluateur, COUNT(DISTINCT Autorisation.id) as nbEvaluateur 
FROM reponses as Reponse, categories as Categorie, questions as Question, 
     autorisations as Autorisation 
WHERE Reponse.question_id = Question.id AND 
     Question.categorie_id = Categorie.id AND 
     Reponse.note != 0 AND 
     Reponse.evaluation_id = $id AND 
     Autorisation.evaluation_id = $id AND 
     Autorisation.complete = 1 
GROUP BY Categorie.titre, Autorisation.typeEvaluateur 
ORDER BY Categorie.id; 

私は結果のようなものであることを期待する:

noteMoyenne  Cat typeEvaluateur nbEvaluateur 
    4.0225   Cat1 TypeA    3 
    **1.6425  Cat1 TypeB    1 
    3.4123   Cat2  TypeA    5 
    .... 

しかし、平均的には一つ一つのカテゴリのために保存してから、新しいがあるときにリセットされるように思えますカテゴリー。実際に返されたデータ:

noteMoyenne Cat  typeEvaluateur nbEvaluateur 
    4.0225  Cat1 TypeA    3 
    **4.0225  Cat1 TypeB    1 
    3.4123  Cat2  TypeA    5 
    .... 

何か助けていただければ幸いです。

ありがとうございます!

答えて

2

GROUP BY句には2つのフィールドがあるため、それぞれ異なるGROUP BYペアのAVGが計算されます。探しているものを得るには、別のクエリ(またはサブクエリ)を用意する必要があります。

関連する問題