#postgresql
#postgresql
Вопрос:
У меня есть таблица, где я указываю дату доставки и вес. Мне нужно добавить столбец для «24-часового агрегата» — смотреть вперед на 12 часов и смотреть назад на 12 часов для каждой строки и суммировать вес. Что-то вроде 12-часовой прокатки веса.
Вот что я пробовал, но ничего не работает / не возвращает:
select delivered_time,
(select Sum(Gross_Weight)
from loads_table
where delivered_time > delivered_time - interval '12 hours'
and delivered_time < delivered_time interval '12 hours') as sumweight
from loads_table
group by delivered_time
Я попробовал пару разных запросов, но новичок в SQL, Postgres и т. Д. … И испытывал трудности. Я в некотором роде жокей Excel.
Итак, мне нужно суммировать вес за предыдущие 12 часов и последующие 12 часов для каждой строки и поместить его в столбец под названием «суммарный вес».
Ответ №1:
Может быть, вы ищете функцию окна скользящей суммы?
select <other columns>,
sum(gross_weight) over (order by delivered_time range between '12 hours' preceding and '12 hours' following) as sumweight
from loads_table
order by delivered_time;
Комментарии:
1. Кажется, что это движется в правильном направлении a_horse_with_no_name, но когда я использую запрос, который вы предложили выше, я получаю сообщение об ошибке: ошибка SQL [0A000]: ОШИБКА: ПРЕДЫДУЩИЙ ДИАПАЗОН поддерживается только с НЕОГРАНИЧЕННЫМ Не уверен, что это значит, но если бы вы могли предложить настройку, я был бы очень признателен.