-1

对不起 MYSQL 新手,所以不太确定语法和遇到问题。

试图在某个位置找到当天的最高和最低温度。

例如。在今天 (timeof) 的最低和最高(消息)温度之后,来自外部 1 lcoation(位置图)

表设置;(截屏)

在此处输入图像描述

mqtt / temperatures
-id
-timeof <- DATETIME field
-message <-- this is the temperature field
-topic
-qos
-hardwareid
-locationmap

只需在 MySQL 工作台 atm 中运行此查询...

SELECT @min_temp:=MIN(message),@max_temp:=MAX(message),`timeof` FROM `mqtt`.`temperatures`;
SELECT * FROM  `mqtt`.`temperatures` WHERE `timeof` >= CURDATE() AND (message=@min_temp OR message=@max_temp);

上面只返回一个最小值/最大值,但不是当天的,我认为它只返回最小值。

4

1 回答 1

1

添加一个GROUP BY子句以按位置对结果进行分组。

例如

SELECT locationmap, MIN(message) AS minTemp, MAX(message) AS maxTemp
   FROM temperatures
   GROUP BY locationmap;

这将为您提供每个位置的温度范围。或者,您可以将结果限制在单个位置而不分组:

SELECT MIN(message) AS minTemp, MAX(message) AS maxTemp
   FROM temperatures
   WHERE locationmap='kitchen';
于 2013-07-10T04:31:22.260 回答