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

原文地址:https://www.cnblogs.com/yif1991/p/5286404.html