我的表包含一个温度列,该列每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)


我在上面的查询中将对max 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

关于mysql - 选择最大范围的数据,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/22899122/

10-09 03:36