我如何通过家长';MySQL中的s表ID

我如何通过家长';MySQL中的s表ID,mysql,group-by,average,Mysql,Group By,Average,我在创建查询以从MySQL数据库中提取特定结果集时遇到困难。我之所以步履蹒跚,可能是因为我不确定该如何提问。如果我遗漏了什么,请留下评论,以便我可以调整问题,更好地反映我正在努力实现的目标 我有三张表格:结果、答案和部分 结果包含一些数据和多个答案 每个答案都有一个部分id 要获得所有答案和结果,我使用以下查询: SELECT * FROM answers AS a JOIN results AS r ON r.id = a.result_id JOIN sections AS s ON s.i

我在创建查询以从MySQL数据库中提取特定结果集时遇到困难。我之所以步履蹒跚,可能是因为我不确定该如何提问。如果我遗漏了什么,请留下评论,以便我可以调整问题,更好地反映我正在努力实现的目标

我有三张表格:结果、答案和部分

结果包含一些数据和多个答案

每个答案都有一个部分id

要获得所有答案和结果,我使用以下查询:

SELECT * FROM answers AS a
JOIN results AS r ON r.id = a.result_id
JOIN sections AS s ON s.id = r.section_id
如何通过结果id获得每个部分的平均值

例如:

results:
id
1
2

answers:
id, result_id, sectionId, sum
1, 1, 1, 5
2, 1, 1, 8
3, 1, 2, 5
4, 1, 2, 7
5, 1, 2, 5
6, 2, 1, 5
7, 2, 1, 5
8, 2, 1, 8
9, 2, 2, 7

sections:
id, name
1, "test1"
2, "test2"
预期成果:

resultId, sectionId, avg
1, 1, 6.5
1, 2, 5.7
2, 1, 6
2, 2, 7

只需添加GROUPBY子句:

SELECT r.result_id, s.section_id, avg(sum)
FROM answers AS a
JOIN results AS r ON r.id = a.result_id
JOIN sections AS s ON s.id = r.section_id
GROUP BY r.result_id, s.section_id

只需添加GROUPBY子句:

SELECT r.result_id, s.section_id, avg(sum)
FROM answers AS a
JOIN results AS r ON r.id = a.result_id
JOIN sections AS s ON s.id = r.section_id
GROUP BY r.result_id, s.section_id
试试这个:

SELECT a.id, b.sectionID, avg(`sum`) TotalAverage
FROM results a INNER JOIN answers b on a.id = b.resultID
    INNER JOIN sections c on b.sectionID = c.id
GROUP BY a.id, b.sectionID
注:您应该在表
答案
SUM
列中添加一个反勾号,因为
SUM
是一个。请尝试以下操作:

SELECT a.id, b.sectionID, avg(`sum`) TotalAverage
FROM results a INNER JOIN answers b on a.id = b.resultID
    INNER JOIN sections c on b.sectionID = c.id
GROUP BY a.id, b.sectionID

PS:您应该在表
答案
SUM
列中添加一个反勾号,因为
SUM
是一个。

我正在尝试获得一个平均值,该平均值取决于结果id和部分id。此时,它会添加所有结果id的总和。我还需要这个来计算截面id?我试图得到一个平均值,这个平均值取决于结果id和截面id。现在它将所有结果id的总和相加。我还需要这个来为部门做些什么?