@Muramidaza

Как выбрать записи из таблицы с макимальным значением за каждый день в PostgreSQL?

Есть таблица monitoring с полями:
- id - integer
- value - integer - параметр
- created_at - timestamp - дата и время создания

Нужно выбрать записи с максимальным value за каждый день (с 00:00:00 по 23:59:59). Как это можно сделать?
  • Вопрос задан
  • 92 просмотра
Решения вопроса 1
AshBlade
@AshBlade
Просто хочу быть счастливым
SELECT distinct 
      LAST_VALUE(id) OVER (PARTITION BY created_at::date ORDER BY value DESC RANGE BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING) id, 
      LAST_VALUE(value) OVER (PARTITION BY created_at::date ORDER BY value DESC RANGE BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING) value, 
      LAST_VALUE(created_at) OVER (PARTITION BY created_at::date ORDER BY value DESC RANGE BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING) created_at 
FROM tbl 
ORDER BY created_at;
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
Melkij
@Melkij
PostgreSQL DBA
select distinct on (created_at::date) created_at, value from tablename order by created_at::date, value desc;
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы