我有一张表格,里面有多年的温度测量数据。
查找最高测量温度,仅包括当年的记录日期。
尝试以下:
SELECT timestamp, temperature AS max_temp
FROM table
WHERE
temperature = (SELECT max(temperature) FROM table
WHERE timestamp >= '2023-01-01');
但是现在完整表格中的记录返回的是 2023 年最高测量温度。
谁有正确的方法?
您可以使用 Year() 函数提取时间戳的年份部分: 因此,修改后的查询将是:
选择时间戳,温度 AS max_temp 从表 在哪里 温度 = (从表中选择最大值(温度) WHERE 年(时间戳)= 年(CURDATE()));
希望它有效!
这可能会解决您的问题:
SELECT timestamp,temperature
FROM tableName
WHERE id IN ( SELECT id
FROM tableName
WHERE temperature IN (SELECT MAX(temperature)
FROM tableName
WHERE LEFT(timestamp,4)='2023'))
AND LEFT(timestamp,4)='2023';
已解决:
SELECT timestamp, temperature AS max_temp
FROM table
WHERE
timestamp >= '2023-01-01'
AND
temperature = (SELECT max(temperature) FROM table
WHERE timestamp >= '2023-01-01');