SELECT 语句使用 max() 函数从最旧的行而不是匹配行返回值
SELECT statement using max() function returning values from oldest row instead of matching row
我有一个 table 三列和几百万行数据。
sensor_data
sensor_id int PK
date datetime PK,
data decimal (10,3)
此查询 return 是传感器 4 的最新日期,但传感器 4 的最旧数据:
select max(date), data
from sensor_data
where sensor_id = 4;
这些查询 return 正确的数据值:
select date, data
from sensor_data
where sensor_id = 4
and date = (select max(date) from sensor_data where sensor_id = 4)
order by date desc;
select date, data
from sensor_data
where sensor_id = 4
order by date desc
limit 1;
我是 MySQL 的新手。我使用的 max()
是错误的,还是它应该如何工作?
我有一个 table 三列和几百万行数据。
sensor_data
sensor_id int PK
date datetime PK,
data decimal (10,3)
此查询 return 是传感器 4 的最新日期,但传感器 4 的最旧数据:
select max(date), data
from sensor_data
where sensor_id = 4;
这些查询 return 正确的数据值:
select date, data
from sensor_data
where sensor_id = 4
and date = (select max(date) from sensor_data where sensor_id = 4)
order by date desc;
select date, data
from sensor_data
where sensor_id = 4
order by date desc
limit 1;
我是 MySQL 的新手。我使用的 max()
是错误的,还是它应该如何工作?