我在MYSQL中有以下表格:
DATETIME dt
VARCHAR location
FLOAT temperature
此表包含在不同位置测量的许多温度。现在我需要一个SQL查询来获取每个位置的最后一次测量。
我实际上不知道该怎么做。
答案 0 :(得分:1)
这将完成你的工作
select * from
(select location, temperature, dt from my_table) as tab
join
(select max(dt) as max_dt from my_table
group by location) as max_date_tab
on (tab.dt = max_date_tab.max_dt)
答案 1 :(得分:1)
请注意,在通过聚合进行分组时,最好在执行分组之前选择列。
select
t1.location,
t2.t2_dt as dt,
t1.temperature
from table_name t1
join
(
select
location,
temperature,
max(dt) as t2_dt
from table_name
group by location
)t2
on t2.location = t1.location AND t1.dt = t2.t2_dt
group by t1.location
<强> DEMO 强>