demo:db<>biola
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
- Perhitungan hari terakhir bulan (tambahkan satu bulan ke bulan pertama untuk mendapatkan hari pertama bulan berikutnya, kurangi satu hari darinya)
- Buat rangkaian tanggal dari awal hingga akhir bulan
- Penggabungan data Anda dengan rangkaian yang dihasilkan sudah menduplikasi nilai biaya, yang hanya perlu dibagi dengan hitungan hari setiap bulan, yaitu
COUNT()
fungsi jendela dilakukan di sini