SQL запрос на фильтрацию дат
2023-06-22 23:08
2023-06-22 16:42
2023-06-22 11:58
2023-06-21 22:40
2023-06-21 18:00
2023-06-21 14:00
Помогите, пожалуйста, написать запрос к таблице, чтобы из указанных дат, выводились только самые поздние по времени?
2023-06-22 23:08
2023-06-21 22:40
Ответы (2 шт):
Автор решения: teran
→ Ссылка
В общем случае, если версия СУБД позволяет использовать оконные функции, то примерно так:
SELECT dt
FROM (
SELECT dt
, ROW_NUMBER() OVER (PARTITION BY DATE(dt) ORDER BY dt DESC) AS rn
FROM t
) AS x
WHERE x.rn = 1
Автор решения: rotabor
→ Ссылка
Поле datetime в исходной таблице Table1. Ответ точно на поставленный вопрос:
SELECT to_char(MAX(datetime),'YYYY-MM-DD HH:MI') AS Latesttime
FROM Table1
GROUP BY datetime::date;
Результат:
latesttime
2023-06-22 23:08
2023-06-21 22:40
Ну а если нужно больше, то
SELECT *
FROM Table1 INNER JOIN (SELECT MAX(datetime) as Latesttime
FROM Table1
GROUP BY datetime::date
) AS LT ON datetime = Latesttime