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
- Cách tính ngày cuối cùng của tháng (cộng một tháng với ngày đầu tiên của tháng để lấy ngày đầu tiên của tháng tiếp theo, trừ đi một ngày)
- Tạo chuỗi ngày từ đầu đến cuối tháng
- Việc kết hợp dữ liệu của bạn với chuỗi được tạo đã sao chép các giá trị chi phí, giá trị này chỉ cần được chia cho số ngày của mỗi tháng, là giá trị của
COUNT()
chức năng cửa sổ làm ở đây