У меня есть таблица со столбцами времени начала, окончания и доставки. Время начала и окончания имеют метку времени без типа данных часового пояса (ГГГГ-ММ-ДД ЧЧ:ММ:СС). Я хотел бы написать сценарий запроса, который генерирует таблицу с тремя столбцами; дата, доставка и среднее время.
Другими словами, каждая строка содержит среднее время доставки в данный день.
Как я мог этого добиться?
Мы можем использовать ::date
для извлечения даты, а затем использовать это в group by
.
select *, finishing - starting time_difference from t
starting | finishing | delivery | time_difference :------------------ | :------------------ | -------: | :-------------- 2022-05-07 08:00:00 | 2022-05-07 10:00:00 | 1 | 02:00:00 2022-05-07 12:00:00 | 2022-05-07 16:00:00 | 2 | 04:00:00
select starting::date "date", AVG(finishing - starting) average_time from t group by starting::date
date | average_time :--------- | :----------- 2022-05-07 | 03:00:00
дб <> рабочий пример здесь
Пожалуйста, добавьте примеры данных и ожидаемый результат в свой пост.