如何在一段时间内制作GROUP BY?

时间:2011-05-27 19:29:35

标签: mysql

我有时间戳,温度和湿度的表。我希望在湿度高于80%的时段内保持平均温度。像

这样的东西

选择 MIN(DTM), MAX(DTM), AVG(TMP) GROUP BY(HMD> 80)

这可能吗?

谢谢

雨果

我需要的是定义当湿度上升到80%以上时开始的时段,并且当下降时结束。然后我必须得到BEGIN时间戳的END时间戳和平均温度

2 个答案:

答案 0 :(得分:2)

在Group BY子句中,您需要使用CASE而不是WHERE:

SELECT MIN (DTM), MAX (DTM), AVG(TMP) GROUP BY (CASE WHEN HMD>80 THEN HMD END);

答案 1 :(得分:1)

更像是:

SELECT MIN (DTM), MAX (DTM), AVG(TMP) FROM tbl WHERE HMD>80 GROUP BY location

您的主要问题是提取有效范围,因为HMD > 80将返回符合条件的所有行,无论它们是否处于同一时期。

如果您确实需要事先提取有效范围,则可能需要访问此主题:

Get list with start and end values from table of datetimes