我的表格包含一个温度列,每隔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)
现在我需要将它们绑在一起..就像最大值 - 最小值
答案 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)
诀窍?