我遇到的问题是:
写一个查询,显示2018年加州人的平均年龄。
平均年龄公式如下所示。
𝐴𝑣𝑒𝑟𝑎𝑔𝑒=∑(𝐴𝑔𝑒+0.5)𝑃
我应该得到的结果是:
average
0 38.487045
select*from population以以下格式提供基础数据:
fips county year age pop_female pop_male pop_total
6001 ALAMEDA 1970 0 8533 8671 17204
6001 ALAMEDA 1970 1 8151 8252 16403
6001 ALAMEDA 1970 2 7753 8015 15768
6001 ALAMEDA 1970 3 8018 8412 16430
6001 ALAMEDA 1970 4 8551 8648 17199
……等等,从1-100岁到1970-2018岁
我试着用这个:
select (sum(age + 0.5) * (pop_total) / sum(pop_total)) as
average from population group by year having year = 2018
但结果是:
average
0.05875349176742352
我做错什么了?
最佳答案
我想你需要第一次乘法运算。大多数数据库都会为此生成错误,但有些数据库接受您的语法:
select (sum( (age + 0.5) * pop_total) /
sum(pop_total)
) as average
from population
where year = 2018
关于mysql - 如何从SQLite中高度分割的人口数据计算平均年龄?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/55368196/