PGSQLПодсчет суммы по промежуткам дат

Есть таблица value_timestamp | value Нужно найти сумму за каждый день на протяжении заданного периода (time1:time2). То есть должна вернуться таблица с 365 строками. Сейчас, если есть данные не на каждый день, строки пропускаются. То есть если за определенное число данных в таблице нет, то строка в результат с нулевой суммой не попадает, как это можно изменить, что бы всегда возвращалось (time2-time1)/day значений (для строк, где нет данных для подсчета суммы должны быть в нули)?

SELECT date_trunc('day', value_timestamp) step, SUM(value)
FROM my
WHERE value_timestamp BETWEEN $1 AND $2
GROUP BY step

Ответы (1 шт):

Автор решения: Akina
SELECT generate_series step, SUM(value)
FROM generate_series($1, $2, '1 day')
LEFT JOIN my ON generate_series = date_trunc('day', value_timestamp)
GROUP BY generate_series 
→ Ссылка