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
- Berechnung des letzten Tages des Monats (addieren Sie einen Monat zum ersten des Monats, um den ersten Tag des nächsten Monats zu erhalten, subtrahieren Sie einen Tag davon)
- Generieren Sie eine Datumsreihe vom Anfang bis zum Ende eines Monats
- Die Zusammenführung Ihrer Daten mit der generierten Reihe hat bereits die Kostenwerte dupliziert, die nur durch die Anzahl der Tage jedes Monats geteilt werden müssen, was den
COUNT()
ergibt Fensterfunktion tut hier