demo:db<>violino
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
- Calcolo dell'ultimo giorno del mese (aggiungi un mese al primo del mese per ottenere il primo giorno del mese successivo, sottrai un giorno da esso)
- Genera una serie di date dall'inizio alla fine di un mese
- L'unione dei tuoi dati con le serie generate ha già duplicato i valori dei costi, che devono solo essere divisi per il conteggio dei giorni di ogni mese, che è il
COUNT()
la funzione finestra fa qui