démo :db<>violon
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
- Calcul du dernier jour du mois (ajoutez un mois au premier du mois pour obtenir le premier jour du mois suivant, soustrayez-en un jour)
- Générer une série de dates du début à la fin d'un mois
- La jointure de vos données avec la série générée a déjà dupliqué les valeurs de coûts, qui doivent seulement être divisées par le nombre de jours de chaque mois, ce que le
COUNT()
la fonction de fenêtre fait ici