楼主: lizhewenbei
2589 14

[问答] 请问大家,如何采用sql语句,求出每年6、7、8三个月份的平均气温? [推广有奖]

11
lizhewenbei 学生认证  发表于 2017-4-24 18:10:50 |只看作者 |坛友微信交流群
baoluanlu 发表于 2017-4-24 18:04
这个我感觉没有必要,因为麻烦很多,code如下:
select a.avgtemp,b.avgtemp from
(select province,y ...
非常非常感谢您!

使用道具

12
zwnSAS121 发表于 2017-4-26 16:51:36 |只看作者 |坛友微信交流群
  1. proc sql;
  2. create table table1 as
  3. select

  4. a.year,
  5. /*a.month,*/
  6. mean(a.temperature) as avg678
  7. from temp as a
  8. where month in(6,7,8)
  9. group by year
  10. order by year;
  11. quit;

  12. proc sql;
  13. create table table2 as
  14. select

  15. a.year,
  16. mean(a.temperature) as avg_year
  17. from temp as a
  18. group by year
  19. order by year desc;
  20. quit;
复制代码

temp为你的原始数据表
已有 2 人评分经验 论坛币 学术水平 热心指数 信用等级 收起 理由
admin_kefu + 20 + 20 热心帮助其他会员
lizhewenbei + 3 + 3 + 3 精彩帖子

总评分: 经验 + 20  论坛币 + 20  学术水平 + 3  热心指数 + 3  信用等级 + 3   查看全部评分

使用道具

13
yongyitian 发表于 2017-4-27 11:40:09 |只看作者 |坛友微信交流群
用case when 是这样的
  1. proc sql;
  2.     create table want as
  3.     select distinct province, year, avg(temperature) as yearAve,  
  4.                 avg (case when month in (6,7,8) then temperature
  5.                      end ) as Month6_8_Mean
  6.    from yourtable
  7.    group by province, year;
  8. quit;
复制代码


已有 2 人评分论坛币 学术水平 热心指数 信用等级 收起 理由
admin_kefu + 20 精彩帖子
lizhewenbei + 3 + 3 + 3 精彩帖子

总评分: 论坛币 + 20  学术水平 + 3  热心指数 + 3  信用等级 + 3   查看全部评分

使用道具

14
lizhewenbei 学生认证  发表于 2017-4-28 12:44:53 |只看作者 |坛友微信交流群
zwnSAS121 发表于 2017-4-26 16:51
temp为你的原始数据表
您是分步做的,这个容易理解!我最开始也是这么做的!

使用道具

15
lizhewenbei 学生认证  发表于 2017-4-28 12:45:18 |只看作者 |坛友微信交流群
yongyitian 发表于 2017-4-27 11:40
用case when 是这样的
这个语句太好了!

使用道具

您需要登录后才可以回帖 登录 | 我要注册

本版微信群
加好友,备注cda
拉您进交流群

京ICP备16021002-2号 京B2-20170662号 京公网安备 11010802022788号 论坛法律顾问:王进律师 知识产权保护声明   免责及隐私声明

GMT+8, 2024-4-25 21:11