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
- Výpočet posledního dne v měsíci (přičtením měsíce k prvnímu v měsíci získáte první den dalšího měsíce, odečtete od něj jeden den)
- Vygenerujte datovou řadu od začátku do konce měsíce
- Spojení vašich údajů s vygenerovanou řadou již duplikovalo hodnoty nákladů, které je třeba pouze vydělit počtem dní v každém měsíci, což je hodnota
COUNT()
zde funguje funkce okna