demo:db<>skrzypce
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
- Obliczanie ostatniego dnia miesiąca (dodaj miesiąc do pierwszego dnia miesiąca, aby uzyskać pierwszy dzień następnego miesiąca, odejmij od niego jeden dzień)
- Generuj serię dat od początku do końca miesiąca
- Połączenie Twoich danych z wygenerowanymi seriami już zduplikowało wartości kosztów, które trzeba tylko podzielić przez liczbę dni każdego miesiąca, co jest wynikiem
COUNT()
działa tutaj funkcja okna