问题和分数之间存在一对多关系。我的表格设置是:
Table Question:
id int auto_increment primary key,
question varchar(255);
Table Score:
id int auto_increment primary key,
score float,
question_id int foreign key
对于每个问题,我想找到平均分,所以我需要问题表中的question
,我需要计算平均分。
我试过:
SELECT Question.question, SUM(Score.score)/COUNT(Score.question_id) FROM `Question` INNER JOIN `Score` WHERE Question.id = Score.question_id;
但它只返回第一个问题和平均值。您可以在 my SQLFiddle link 看到它的运行情况。 .
我需要修改什么才能返回所有问题及其平均分数?
最佳答案
你忘了添加 GROUP BY
子句,
SELECT ...
FROM...
GROUP BY Question.question
你也可以选择使用 AVG()
SELECT Question.question,
AVG(Score.score) AS average
FROM Question INNER JOIN Score
ON Question.id = Score.question_id
GROUP BY Question.question
关于mysql - SQL - 获取所有一对多关系的平均分数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16868152/