Выберите максимальную разницу между двумя датами в одном столбце

#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