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
- Berekening van de laatste dag van de maand (voeg een maand toe aan de eerste van de maand om de eerste dag van de volgende maand te krijgen, trek er één dag van af)
- Genereer een datumreeks van begin tot einde van een maand
- De samenvoeging van uw gegevens met de gegenereerde reeks heeft de kostenwaarden al gedupliceerd, die alleen hoeven te worden gedeeld door het aantal dagen van elke maand, wat de
COUNT()
is vensterfunctie doet hier