Как вывести последнее значение по времени SQL

Есть таблица

id  Date_time   Log
1   01.10.2021 15:30    Действие 1
1   01.10.2021 15:35    Действие 2
2   02.10.2021 10:00    Действие 1
2   02.10.2021 12:00    Действие 2

Необходимо получить по каждому id последний лог, то есть на выходе должно получиться:

id  Date_time   Log
1   01.10.2021 15:35    Действие 2
2   02.10.2021 12:00    Действие 2

Залил данные :


Ответы (1 шт):

Автор решения: MaxU

Воспользуйтесь CTE и оконной функцией row_number():

with tab as (
   select 
      id, Date_time, Log, 
      row_number() over(partition by id order by Date_time desc) as rn
   from table_name
)
select 
    id, Date_time, Log 
from tab 
where rn = 1

SQL-fiddle

→ Ссылка