Maison >base de données >tutoriel mysql >Comment calculer les sommes cumulées dans PostgreSQL à l'aide des fonctions de fenêtre ?

Comment calculer les sommes cumulées dans PostgreSQL à l'aide des fonctions de fenêtre ?

Mary-Kate Olsen
Mary-Kate Olsenoriginal
2025-01-12 17:31:50286parcourir

How to Calculate Cumulative Sums in PostgreSQL Using Window Functions?

Calcul de la somme cumulée dans PostgreSQL

En informatique, il est souvent nécessaire de calculer la somme cumulée ou la somme cumulée d'un champ spécifique. Dans PostgreSQL, cela peut être facilement réalisé à l'aide des fonctions de fenêtre.

Introduction aux fonctions des fenêtres

Les fonctions de fenêtre vous permettent d'effectuer des calculs sur des lignes regroupées en fonction de conditions spécifiques. Dans cet exemple, nous souhaitons regrouper les lignes par circle_id et calculer la somme cumulée du champ amount.

Requête pour calculer la somme cumulée

La requête suivante montre comment calculer la somme cumulée :

<code class="language-sql">SELECT ea_month, id, amount, ea_year, circle_id, sum(amount) OVER (PARTITION BY circle_id ORDER BY ea_year, ea_month) AS cum_amt
FROM tbl
ORDER BY circle_id, ea_year, ea_month;</code>

Dans cette requête :

    La clause
  • PARTITION BY regroupe les lignes par colonne circle_id.
  • La clause
  • ORDER BY trie les lignes de chaque partition par ea_year et ea_month.
  • La clause
  • OVER définit une fenêtre qui applique la fonction sum() aux lignes commençant de chaque partition jusqu'à la ligne actuelle.
  • La somme cumulée résultante est stockée dans la colonne cum_amt.

Traitement des données de date et d'heure

Si vos colonnes ea_year et ea_month sont stockées sous forme de chaînes, la requête sera triée par ordre alphabétique plutôt que chronologique. Pour trier correctement, pensez à le convertir en type date avant d'effectuer le calcul.

Exclure les pairs

Dans PostgreSQL 11 et versions ultérieures, vous pouvez utiliser l'option frame_exclusion pour contrôler la façon dont les pairs sont gérés dans les fonctions de fenêtre. Cela vous permet d'inclure ou d'exclure certaines lignes des calculs.

En suivant ces étapes, vous pouvez calculer efficacement les sommes cumulées dans PostgreSQL, fournissant ainsi des informations précieuses sur vos données.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn