demo:db<>fiddle
SELECT
gs::date,
costs / COUNT(*) OVER (PARTITION BY entry_date) -- 3
FROM costs,
generate_series( -- 2
entry_date,
entry_date + interval '1 month - 1 day', -- 1
interval '1 day'
) gs
- Изчисляване на последния ден от месеца (добавете месец към първия ден от месеца, за да получите първия ден от следващия месец, извадете един ден от него)
- Генерирайте поредица от дати от началото до края на месеца
- Съединяването на вашите данни с генерираната поредица вече дублира стойностите на разходите, които трябва само да бъдат разделени на броя на дните за всеки месец, което е това, което
COUNT()
функция прозорец прави тук