我遇到的问题是:
写一个查询,显示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/

10-11 05:02