• 博客园logo
  • 会员
  • 周边
  • 众包
  • 新闻
  • 博问
  • 闪存
  • 赞助商
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录
yif
专注于C/C++,C#,Objective-C,GIS,空间统计,数据挖掘,智慧城市
博客园    首页    新随笔    联系   管理    订阅  订阅
ACCESS中计算日均值

如图所示,现有时间数据的时间字段是精确到时分秒的,现在需要计算PM2.5的日平均值,因此在查询时需要过滤时间字段的格式,去掉时分秒部分,只提取年月日部分。

查找资料,发现一般用CONVERT()函数实现该功能,但是在ACCESS中提示该函数未定义,可以考虑用Format函数代替。

SELECT FORMAT(时间, "YYYY年MM月DD日") AS 逐日时间, 监测点, AVG(PM25) AS PM25日均
FROM 湖北省_201501
GROUP BY FORMAT(时间, "YYYY年MM月DD日"), 监测点;

查询结果为:

需要注意的是在使用GROUP BY函数时有一个很重要的原则:SELECT后面的所有列中,没有使用聚合函数的列,必须出现在GROUP BY后面。下面就上面的一条SQL语句作具体解释:

SELECT后面共有三个列(时间、监测点、PM25)参与了查询,其中最后一个列PM25使用了聚合函数AVG,前两个没有,因此在使用GROUP BY时就需要将前两个列都加在GROUP BY后面。例如像下面这样写会报错:

SELECT FORMAT(时间, "YYYY年MM月DD日") AS 逐日时间, 监测点, AVG(PM25) AS PM25日均
FROM 湖北省_201501
GROUP BY FORMAT(时间, "YYYY年MM月DD日");

另外,关于几个重要函数的用法参考:

Group:http://www.cnblogs.com/gaiyang/archive/2011/04/01/2002452.html

CONVERT:http://www.w3school.com.cn/sql/func_convert.asp

posted on 2016-03-17 10:39  mattran  阅读(1374)  评论(0)    收藏  举报
刷新页面返回顶部
博客园  ©  2004-2025
浙公网安备 33010602011771号 浙ICP备2021040463号-3