选择最高范围的数据

时间:2014-04-06 19:50:03

标签: mysql

我的表格包含一个温度列,每隔10分钟填入数据库,我想知道它是什么时候,当月温度的每日最大范围是多少

这将选择每日最高温度

SELECT logDateTime, MAX(Temp)
FROM sibeniku_monthly
WHERE DATE_FORMAT(LogDateTime, "%m.") = 04
GROUP BY DAY(logDateTime)

这个每日最低温度

SELECT logDateTime, MIN(Temp)
FROM sibeniku_monthly
WHERE DATE_FORMAT(LogDateTime, "%m.") = 04
GROUP BY DAY(logDateTime)

现在我需要将它们绑在一起..就像最大值 - 最小值

2 个答案:

答案 0 :(得分:0)

你可以这样做

SELECT logDateTime, MAX(Temp) `max`,
MIN(Temp) `min` ,
MAX(Temp) - MIN(Temp) `diff`
FROM sibeniku_monthly
WHERE DATE_FORMAT(LogDateTime, "%m.") = 04
GROUP BY DAY(logDateTime)

我在上面查询它会对min max进行两次计算以将其减少到一次做subselect

SELECT t.* ,t.`max` - t.`min` `diff`
 FROM(
    SELECT logDateTime, MAX(Temp) `max`,
    MIN(Temp) `min` 
    FROM sibeniku_monthly
    WHERE DATE_FORMAT(LogDateTime, "%m.") = 04
    GROUP BY DAY(logDateTime)
) t

答案 1 :(得分:0)

隐而不宣'吨

SELECT logDateTime,MAX(Temp),MIN(Temp) 来自sibeniku_monthly 在哪里DATE_FORMAT(LogDateTime,"%m。")= 04 GROUP BY DAY(logDateTime)

诀窍?