[英]How do I group a MySQL query by two different columns?
我正在研究的问题是:
提供按省和问题细分的问题的平均答案。 您必须包括省份和问题以及平均值。
示例输出应如下所示:
Ontario - Do you like blak? - 3.4
Ontario - Do you like flah? - 2.3
Ontario - Do you like rahhggg? - 4.8
Alberta - Do you like flah? - 2.3
Alberta - Do you like rahhggg? - 4.8
到目前为止,我已经尝试将它们按问题和平均值列出,但我不知道如何首先按省进行分组。 我认为这是一个 JOIN,但我不确定如何布局。 我拥有的:
SELECT survey_question_id, AVG(survey_response)
FROM survey_responses
JOIN survey_responders
ON survey_responses.id = survey_responders.id
WHERE survey_responders.province='Ontario'
GROUP BY survey_question_id;
SELECT province,survey_question_id, AVG(survey_response)
FROM survey_responses
JOIN survey_responders
ON survey_responses.id = survey_responders.id
WHERE survey_responders.province='Ontario'
GROUP BY province,survey_question_id;
如果您需要所有省份,只需像这样删除Where
SELECT province,survey_question_id, AVG(survey_response)
FROM survey_responses
JOIN survey_responders
ON survey_responses.id = survey_responders.id
GROUP BY province,survey_question_id;
MySQL 中的 GROUP BY 语句确定查询引擎如何聚合数据。 您目前仅按survey_question_id 分组。 由于 id 都不同,因此您永远不会在结果中获得聚合。
我建议将您的组更改为:
GROUP BY survey_responders.province, survey_responses.questiontitle
并确保适当地编辑 SELECT 语句。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.