неправильной таблице имеются поля со временем. Время зафиксировано по событию. К примеру "время сообщения" и "время прибытия". Это астрономическое время возникновения события.
"Время следования" является не астрономическим временем, а вычисляемым. Это разность между астрономическим временем прибытия (dt_arrival) и сообщения (dt_mess).
Так вот вычисляемые значения не вижу смысла хранить, но они нужны при анализе. К примеру "среднее время прибытия подразделения" за определенный промежуток времени.
Так вот. Поля в таблице известны. То есть при написании запроса с вычислениями вместо большой формулы к примеру
round(CAST(avg(EXTRACT(EPOCH FROM dt_arrival - dt_mess)/60) AS numeric),2)
из запроса
SELECT round(CAST(avg(EXTRACT(EPOCH FROM dt_arrival - dt_mess)/60) AS numeric),2) as avg_traveltime
FROM api_cpps_old.stat_data_fire
WHERE dt_mess>='2020-01-01' AND dt_mess<'2020-02-01';
хотелось бы увидеть, что-то типа:
round(CAST(avg(timetravel()) AS numeric),2)
Как я понимаю с этим должна справиться оконная функция. Верно или я ошибаюсь и такое не возможно?
Мне в это слабо вериться, что в PostgreSQL - это не возможно!
> В моей неправильной таблице имеются поля со временем. Показали бы \d таблицы, что ли... > Как я понимаю с этим должна справиться оконная функция. При чём тут оконные функции? Они нужны, грубо говоря, для анализа среди каких-то "групп" и "последовательностей" без группировки — чтобы получать какие-то значения из [групп] соседних записей. Может, Вам сделать view?
Обсуждают сегодня