mysql - 选择最高范围的数据

标签 mysql

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

相关文章:

mysql - 为不同的 id MySQL 插入相同的行

mysql - 如何在一个实例上检索多个年级事件的分数

mysql - 如何编写查询或过程

mysql - phpmyadmin 无法打开表的浏览 View

mysql选择更新: not locked for read

php - 网页不打印winsock信息

mysql - MongoDB 类型从 NumberLong 更新为 String

php - 识别和连接表之间的 ID

Java Spring Boot/Mysql - 使用 HashSet 作为参数进行查询

php - 如何在MYSQLI中获取ofbject