gpt4 book ai didi

sql - 如何在SQL中逐行取两列的平均值?

转载 作者:行者123 更新时间:2023-12-05 09:36:17 25 4
gpt4 key购买 nike

我有一个表 match 看起来像这样(请参阅附图)。我想使用这段代码检索一个数据集,该数据集有一列 home_goalaway_goal 的平均值

SELECT 
m.country_id,
m.season,
m.home_goal,
m.away_goal,
AVG(m.home_goal + m.away_goal) AS avg_goal
FROM match AS m;

但是,我得到了这个错误

column "m.country_id" must appear in the GROUP BY clause or be used in an aggregate function
LINE 3: m.country_id,

我的问题是:为什么需要 GROUP BY 子句?为什么 SQL 不知道如何逐行取两列的平均值?

谢谢。

enter image description here

最佳答案

试试这个:

SELECT 
m.country_id,
m.season,
m.home_goal,
m.away_goal,
(m.home_goal + m.away_goal)/2 AS avg_goal
FROM match AS m;

有人要求您将 group_by 用作 avg() ,就像 sum() 对一列的多个值进行处理一样,您可以对分组中的所有列进行分类,这些列不是按列进行操作

您希望对两个不同的列进行平均 - 它是按行而不是按列的操作

关于sql - 如何在SQL中逐行取两列的平均值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65271388/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com