如何选择特定日期的最高值?
我的数据如下:
id,value_id,sensor_id,value,time(datetime)
1,123,gas,10,2018-01-14 01:00:00
1,123,gas,20,2018-01-14 02:00:00
我尝试了很多查看事物(也使用 MAX),例如:
SELECT value
FROM table
WHERE sensor_id = "123"
AND value_id = "gas"
AND time = "2018-01-14"
order by time;
limit 1;
我需要选择在特定日期记录的特定数据的最高值(不是间隔,即 2017-01-01 -> 2017-01-03,仅适用于该指定日期:2018-01-14)。
但是我收到错误或错误的值。
最佳答案
尝试这个查询:
SELECT value
FROM table
WHERE sensor_id = '123'
AND value_id = 'gas'
AND time >= '2018-01-14'
AND time < '2018-01-15'
ORDER BY value DESC
LIMIT 1;
使用单引号而不是双引号。
当您想要获得最高值时,您应该对列进行降序排序 (DESC)。如果它是最高值,请不要按时间排序,在这种情况下您可以选择 max(value)
,因为它是返回的字段,那么你就不需要订购依据和限制。
时间的事情我更喜欢做这个替换,因为其他方式它不能与时间戳一起工作,而这种方式它将始终工作,无论列的类型是日期还是时间戳。
关于mysql - 如何选择特定日期的最高值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48254473/