demo:db<>fiol
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
- Beräkning av den sista dagen i månaden (lägg till en månad till den första i månaden för att få den första dagen i nästa månad, subtrahera en dag från den)
- Skapa en datumserie från början till slutet av en månad
- Kombinationen av dina data med den genererade serien duplicerade redan kostnadsvärdena, som bara behöver delas med antalet dagar i varje månad, vilket är vad
COUNT()
fönsterfunktionen gör här