如何在sql查询访问中计算所有子县的每个县的平均人口?
Posted
技术标签:
【中文标题】如何在sql查询访问中计算所有子县的每个县的平均人口?【英文标题】:How to calculate average population for each county across all sub-counties in a sql query access? 【发布时间】:2015-11-16 20:53:56 【问题描述】:我有一个表(table1),其中包含:
Sub_county_name,
county_name,
total_pop(for each sub county)
我想做一个查询,给出每个县在所有子县的平均人口,最好不要加入。
我尝试过的:
SELECT Sub_county_name,county_name,total_pop
FROM table1
WHERE total_pop = (SELECT (SUM(total_pop)/COUNT(county_name))
FROM table1 a
WHERE a.county_name = table1.county_name);
这运行但只给了我两个条目(有 100 个县)。
能否提示我做错了什么?
【问题讨论】:
我认为您的查询目前仅适用于具有单个子县的县。您需要将 where 子句中的内容向上移动到选择部分,因为您想检索该值,而不是按它过滤。 【参考方案1】:1) 只需使用 group by 而不是 join。
2) 您可以使用内置的 avg() 函数来获得平均值(mean)。
select county_name, avg(total_pop) from table1 group by county_name
【讨论】:
【参考方案2】:您只需要对county_name 进行聚合,因此您将忽略sub_county_name。它看起来像这样:
SELECT County_name, Avg(total_pop) AS average_pop 从表 1 按县名分组;
希望有帮助!
【讨论】:
我可以使用相同的代码来计算总体的方差吗?如果可以,使用 Var 还是 VarP 更好? Var 和 VarP 是域函数,与聚合函数略有不同。 Var 和 VarP 不能作为聚合使用(好吧,我不确定,这取决于 Access 的版本),因此您必须使用域函数。 Var 返回字段的样本方差,VarP 返回字段的总体偏差。以上是关于如何在sql查询访问中计算所有子县的每个县的平均人口?的主要内容,如果未能解决你的问题,请参考以下文章