Mysql 选择仅显示一个结果的平均值
对于车库数据库,尝试在截面测试期间查找制造商部件的平均分数。以下SQL似乎工作得很好:Mysql 选择仅显示一个结果的平均值,mysql,sql,select,relational-database,Mysql,Sql,Select,Relational Database,对于车库数据库,尝试在截面测试期间查找制造商部件的平均分数。以下SQL似乎工作得很好: SELECT component.manufacturer_id, AVG(section.grades) AS Grade_Average FROM section INNER JOIN component ON section.mod_id=component.cid GROUP BY component.manufacturer_id 但是只会给出一行结果(即,只针对一个制造商id)在节和组件之
SELECT component.manufacturer_id, AVG(section.grades) AS Grade_Average
FROM section
INNER JOIN component
ON section.mod_id=component.cid
GROUP BY component.manufacturer_id
但是只会给出一行结果(即,只针对一个制造商id)在节和组件之间有一个内部连接。如果两个表中都没有特定制造商的匹配记录,则会将它们完全过滤掉。如果要返回所有
制造商id
值,则需要使用左联接
:
SELECT component.manufacturer_id,
AVG(section.grades) AS Grade_Average
FROM component
LEFT JOIN section
ON status.mod_id=component.cid
GROUP BY component.manufacturer_id;
当前查询使用的是内部联接
,该联接只返回两个表之间匹配的行
您也在使用
状态。mod_id
在加入
中,但是您正在加入部分
,您是否需要向状态
添加一个加入,或者您的原始帖子中键入了什么错误?表中是否还有制造商id
“将只给出一行结果”或“只给出一行结果”。因为GROUP BY将为其在联接中找到的每个唯一制造商ID返回一个平均值。如果只得到一个结果,则表示只有一个制造商ID。