gpt4 book ai didi

mysql - 计算所有列的平均值,然后输出差异

转载 作者:行者123 更新时间:2023-11-28 23:18:00 25 4
gpt4 key购买 nike

您好,我无法确定我的查询有什么问题。

我正在尝试输出与事件名称无关的所有事件的平均成本。但是,在处理我的查询时,似乎在事件名称和平均值之间建立了联系。我相信查询正在生成与该名称相关的每个事件的平均成本,而不是总平均值。一旦我有了平均值,我就想只显示成本超过平均成本价格的事件。

查询:

SELECT Event_Name AS 'Event Name'
,ROUND(Event_Cost) AS 'Event Cost'
,ROUND(AVG(Event_Cost)) AS 'Average Cost Of Events'
,ROUND(Event_Cost - AVG(Event_Cost)) AS 'Amount Over Average £'
FROM Event
WHERE Event_Cost > (SELECT AVG(Event_Cost) FROM Event)
GROUP BY Event_Name;

我确信这是我所缺少的非常简单的东西。提前致谢

最佳答案

您的查询中有两个问题。第一个是因为您选择了事件名称,所以您的平均值是在该级别计算的;另一个问题是您正在使用 Event_Cost 列,同时从同一个表中同时聚合,这是不可能的。

您应该从内部查询中获取聚合值并将其与您的初始表交叉连接,如下所示

SELECT  t1.Event_Name AS 'Event Name',
ROUND(Event_Cost) AS 'Event Cost',
ROUND(t2.aver) AS 'Average Cost Of Events',
ROUND(Event_Cost - t2.aver) AS 'Amount Over Average £'
FROM Event t1
CROSS JOIN
(
SELECT AVG(Event_cost) as aver
FROM Event
) t2
WHERE t1.Event_Cost > t2.aver;

关于mysql - 计算所有列的平均值,然后输出差异,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43020346/

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