У меня есть таблица с пунктами с
Item_id, Item_time, Item_numbers
1 2017-01-01 18:00:00 2
2 2017-01-01 18:10:00 2
3 2017-01-01 19:10:00 3
. Я хочу сгруппировать элементы по часам в течение некоторого определенного времени (от 9 до 3 для каждого дня) и в случае, если нет записи дляв определенные часы это должно быть 0.
Требуемый результат:
Item_time Item_numbers
2017-01-01 18:00:00 4
2017-01-01 19:00:00 3
2017-01-01 20:00:00 0
with hour_items as (select date_trunc('hour', item_time) "hour",
avg(item_numbers) as value from items where item_id=2 and
fact_time::date= '2017-01-01' group by hour) select hour, value from
hour_items where EXTRACT(HOUR FROM hour) >= '9' and EXTRACT(HOUR FROM
> hour) < '15'.
Приведенный выше запрос группирует их правильно, но там, где отсутствует час, нет записи.Хотя это должна быть запись с 0, как указано в желаемом выводе.