我遇到了以下问题:
写一个查询,显示2018年加利福尼亚人的平均年龄。
平均年龄的公式如下所示。
= ∑(+0.5)∗ / ∑
我应该得到以下结果:
average
0 38.487045
从总体中选择*将以以下格式提供基本数据:
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
我在做什么错了?
答案 0 :(得分:2)
我认为您想在sum()
内的第一个乘法 中。大多数数据库都会为此生成错误,但是有些数据库会接受您的语法:
select (sum( (age + 0.5) * pop_total) /
sum(pop_total)
) as average
from population
where year = 2018