根据日期时间和名称获取最后一行

时间:2014-05-29 07:09:12

标签: mysql select

我在MYSQL中有以下表格:

DATETIME dt
VARCHAR location
FLOAT temperature

此表包含在不同位置测量的许多温度。现在我需要一个SQL查询来获取每个位置的最后一次测量。

我实际上不知道该怎么做。

2 个答案:

答案 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