我的表包含一个温度列,每 10 分钟填充到 db 中,我想知道它是什么时候以及当月温度的最大每日范围是多少
这将选择最高每日温度
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)
现在我需要把它们绑在一起..比如最大值 - 最小值
最佳答案
你可以这样做
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 以将其减少到一次做子选择
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
关于mysql - 选择最高范围的数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22899122/