gpt4 book ai didi

SQL : how to calculate an average from a query

转载 作者:行者123 更新时间:2023-12-03 02:27:57 27 4
gpt4 key购买 nike

在我的第一份全职工作中,我已经使用 SQL 大约一周了,我正在尝试从一个查询中计算一些统计信息,其中我组合了来自不同表的列。

具体来说,我正在尝试从组合表中计算平均值,其中我应用了过滤器(或约束?我不清楚 SQL 术语)。

从做research on Google ,我学会了如何计算平均值:

SELECT AVG(column_name) 
FROM table_name

我遇到的问题是,这似乎只适用于数据库中的现有表,不适用于我创建的新查询。

我的代码的简化版本如下:

SELECT 
Animal_Facts.Animal_Name, Animal_Facts.Prev_Reg_Amount,
Names.Given_Name, Animal_Class.Class_Description
FROM
Names
INNER JOIN
Animal_Facts ON Names.Name_Key = Animal_Facts.Name_Key
INNER JOIN
Animal_Class ON Animal_Facts.Class_Key = Animal_Class.Class_Key

此查询创建了三个表中的四列组合,其中 Class_Description 描述了动物是否已绝育、植入微芯片、是否属于养老金领取者等,Pre_Reg_Amount 是已支付的注册费。

我想找到养老金领取者支付的平均费用,因此我添加了以下代码行来过滤表格:

AND Animal_Class.Class_Description LIKE ('%pensioner%')

然后计算我添加的平均值:

SELECT AVG(Animal_Facts.Prev_Reg_Amount) from Animal_Facts

所以我的总代码是:

SELECT 
Animal_Facts.Animal_Name, Animal_Facts.Prev_Reg_Amount,
Names.Given_Name, Animal_Class.Class_Description
FROM
Names
INNER JOIN
Animal_Facts ON Names.Name_Key = Animal_Facts.Name_Key
INNER JOIN
Animal_Class ON Animal_Facts.Class_Key = Animal_Class.Class_Key
AND Animal_Class.Class_Description LIKE ('%pensioner%')

SELECT AVG(Animal_Facts.Prev_Reg_Amount)
FROM Animal_Facts

现在的问题是,在 Excel 中检查此计算后,我实际上得到的不是养老金领取者数据的平均值,而是所有数据的平均值。有没有办法直接从我在 SQL 中创建的表计算平均值(和其他统计数据)?

注意:我可以通过将数据导出到 Excel 来计算所有这些统计数据,但这会耗费更多时间。我更愿意学习如何在 SQL 中执行此操作。

最佳答案

SELECT AVG(af.Prev_Reg_Amount)
FROM
Animal_Facts af
INNER JOIN Animal_Class ac
ON af.Class_Key = ac.Class_Key
AND Class_Description LIKE ('%pensioner%')

关于SQL : how to calculate an average from a query,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40667385/

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