首页 > 解决方案 > 如何按年份计算平均值?

问题描述

我有一个包含许多字段的数据集。我试图通过年份范围的平均值来总结“价格”数据。例如:

试过:

proc sql;
select avg(price) as avg_price
FROM summary
WHEN year between 1995 and 2000;
quit;

上面的代码不起作用。你能帮我写代码吗(请添加到 proc 并退出或我需要的任何其他东西,我是 SAS/SQL 新手)

在此处输入图像描述

标签: sqlsas

解决方案


如果您需要一年平均,那么您需要逐年分组

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

推荐阅读