很抱歉MYSQL很新,所以对语法不太确定并遇到麻烦。
尝试在某个位置找到当天的最高和最低温度。
例如。 来自outside1 lcoation(locationmap)的今天(timeof)的最小和最大(消息)温度之后
表格设置; (截图)
mqtt / temperatures
-id
-timeof <- DATETIME field
-message <-- this is the temperature field
-topic
-qos
-hardwareid
-locationmap
只需在MySQL workbench 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);
以上只返回最小值/最大值,但不是当天,我认为它只返回最小值。
答案 0 :(得分: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';