尝试从“响应”字段中获取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
....
任何帮助都会非常感激,我很遗憾。
谢谢!
答案 0 :(得分:2)
由于GROUP BY子句中有两个字段,因此它为每个不同的GROUP BY对计算AVG。您可能需要另外一个查询(或子查询)来获取您正在寻找的内容。