如何在一段时间内进行GROUP BY?

问题描述

| 我有带时间戳,温度和湿度的表。我想获得湿度高于80%的时段的平均温度。就像是 选择 MIN(DTM), 最大(DTM), AVG(TMP) 分组依据(HMD> 80) 那可能吗? 谢谢 雨果 我需要定义从湿度超过80%开始到波纹管结束的时间段。然后我必须获取BEGIN时间戳,END时间戳和平均温度     

解决方法

        在Group BY子句中,您需要使用CASE而不是WHERE:
SELECT MIN (DTM),MAX (DTM),AVG(TMP) GROUP BY (CASE WHEN HMD>80 THEN HMD END);
    ,        更像:
SELECT MIN (DTM),AVG(TMP) FROM tbl WHERE HMD>80 GROUP BY location
不过,您的主要问题是要提取有效范围,因为
HMD > 80
会返回所有符合条件的行,无论它们是否处于同一时间段。 如果您实际上确实需要事先提取有效范围,则可以访问此线程: 从日期时间表中获取包含开始和结束值的列表     

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...