如何在MS Access中按小时计算每15分钟温度数据的平均值?
MS Access 按小时统计平均温度的SQL查询
核心思路
通过Access的日期格式化函数将15分钟间隔的时间数据规整到小时级整点,再按规整后的时间分组,计算每组的平均温度。
基础版SQL语句(字段类型正常时)
假设你的数据表名为TemperatureData,时间字段是Date/Time类型的采集时间,温度字段是数值类型的温度,使用以下查询:
SELECT Format([采集时间], "yyyy-mm-dd hh:00:00") AS 统计小时, AVG([温度]) AS 平均温度 FROM TemperatureData GROUP BY Format([采集时间], "yyyy-mm-dd hh:00:00") ORDER BY Format([采集时间], "yyyy-mm-dd hh:00:00");
适配文本型温度字段的版本
如果你的温度字段是文本类型(示例中用逗号作为小数点分隔符),需要先将其转换为数值类型再计算平均:
SELECT Format([采集时间], "yyyy-mm-dd hh:00:00") AS 统计小时, AVG(CDbl(Replace([温度], ",", "."))) AS 平均温度 FROM TemperatureData GROUP BY Format([采集时间], "yyyy-mm-dd hh:00:00") ORDER BY Format([采集时间], "yyyy-mm-dd hh:00:00");
关键说明
Format([采集时间], "yyyy-mm-dd hh:00:00"):将任意时间转换为对应小时的整点时间(如21-02-2020 16:29转为2020-02-21 16:00:00),作为分组依据。AVG():计算每组内的温度平均值。Replace([温度], ",", "."):将文本型温度中的逗号替换为点,再用CDbl()转换为双精度数值,确保平均计算有效。
内容的提问来源于stack exchange,提问作者Michelle Melin
相关产品推荐
相关产品推荐

