我是sql新手,在发现如何在加入后进行分组时遇到了困难。目标是找出哪个国家养得最多。
SELECT x.country_id
, x.pledged
, y.id
, y.name
FROM campaign x
LEFT
JOIN country y
ON x.country_id = y.id
这将显示所需的列,一切正常
当我加上:
GROUP BY country.name
或
GROUP BY campaign.country_id
我犯了一个我不明白的错误。
错误代码:1055。select列表的表达式#1不在group by子句中,它包含未聚合的列“kickstarter.campaign.country\u id”,该列在功能上不依赖于group by子句中的列;这与sql\u mode=only\u full\u group by不兼容
3条答案
按热度按时间vawmfj5a1#
“groupby”的基本规则是,选择的列必须应用聚合函数,或者显示在groupby之后。尝试下面的一个,我们试图总结每个国家的所有认捐款项。
j2qf4p5b2#
您需要按所有列分组(如
GROUP BY campaign.country_id, campaign.pledged, country.id, country.name
)或者在选择列表中使用聚合函数。nr7wwzry3#
下面的sql应该可以工作。请注意,您的GROUPBY和select子句应该是同步的,这样聚合才能工作。