#sql #postgresql #datetime #aggregate-functions #date-arithmetic
#sql #postgresql #datetime #агрегатные функции #дата-арифметика
Вопрос:
У меня есть таблица даты аварии, я хочу вычислить максимум между разницей между датой i и датой i 1, которые находятся в одном столбце. когда мы объявляем дату аварии, я хочу найти запись дней без аварий.
Комментарии:
1. Пожалуйста, предоставьте больше информации об исходной таблице / группировках / бизнес-логике и т. Д. Как вы описываете, это звучит так, как будто вы хотите найти разницу между минимальным значением и МАКСИМАЛЬНЫМ значением в столбце, но, предположительно, это минимальные и максимальные значения для каждой конкретной записи — как это определяется — например, accident_id или что-то в этом роде…
Ответ №1:
Вы можете использовать lag()
. Предполагая, что структура таблицы, подобная mytable(dt)
where dt
, имеет date
аналогичный тип данных, вы бы сделали:
select max(diff)
from (select dt - lag(dt) over(order by dt) diff from mytable) t