sql - 如何按年份计算平均值?
问题描述
我有一个包含许多字段的数据集。我试图通过年份范围的平均值来总结“价格”数据。例如:
- 1900 年到 1925 年:“平均价格”
- 1925 年至 1950 年:“平均价格”
- 1950 年至 1975 年:“平均价格”
- 1975 年至 2000 年:“平均价格”
- 2000 年至 2017 年:“平均价格”
试过:
proc sql;
select avg(price) as avg_price
FROM summary
WHEN year between 1995 and 2000;
quit;
上面的代码不起作用。你能帮我写代码吗(请添加到 proc 并退出或我需要的任何其他东西,我是 SAS/SQL 新手)
解决方案
如果您需要一年平均,那么您需要逐年分组
select year, avg(price) as avg_price
FROM summary
WHERE year between 1995 and 2000
group by year;
或对于自定义年份范围,一种简单的方法是联合
select 'from 1940 to 1960', avg(price)
from summary
WHERE year between 1940 and 1960
union
select 'from 1960 to 1980', avg(price)
from summary
WHERE year between 1960 and 1980
union
select 'from 1980 to 2000', avg(price)
from summary
WHERE year between 1980 and 2000
推荐阅读
- r - 使用 lapply 绘制标题
- quickblox-android - 在 android-Quickblox 中检查两个用户之间是否存在对话框
- .net - 为什么应用程序会使用 CSC.EXE?
- javascript - 如何使用 axios "Content-Type": "application/x-www-form-urlencoded" 发送 Ints 数组
- php - 如何通过从我的数据库中选择不同的 patient_id 并在其上绘制图表来绘制数据?
- maven - 带有阴影的 JavaFX 构建,位置是必需的。它在看哪里?
- java - 根据文本量更改文本编辑的高度
- typescript - 如何修复有关命名空间的 ts lint 错误?
- javascript - 任意图表中的附加或独立 xAxis
- python - 如何使用python正确打印json响应