Maison >base de données >tutoriel mysql >Comment puis-je calculer les sommes cumulées dans MySQL ?

Comment puis-je calculer les sommes cumulées dans MySQL ?

Susan Sarandon
Susan Sarandonoriginal
2025-01-22 09:58:39552parcourir

How Can I Calculate Cumulative Sums in MySQL?

Créer une colonne de somme cumulée dans MySQL

Lors du traitement d'ensembles de données, il est souvent nécessaire de calculer la somme cumulée. Dans MySQL, cela peut être réalisé de plusieurs manières.

Utiliser la requête associée

Les requêtes associées impliquent de référencer des données provenant d'autres lignes dans la même requête. Pour créer une colonne de somme cumulée en utilisant cette méthode :

<code class="language-sql">SELECT t.id,
       t.count,
       (SELECT SUM(x.count)
          FROM TABLE x
         WHERE x.id <= t.id) AS cumulative_sum
  FROM TABLE t
 ORDER BY t.id;</code>

Utiliser des variables MySQL

Les variables MySQL peuvent également être utilisées pour les calculs de sommes cumulées. Cela implique de déclarer une variable et de l'incrémenter dans la requête :

<code class="language-sql">SELECT t.id,
       t.count,
       @running_total := @running_total + t.count AS cumulative_sum
  FROM TABLE t
  JOIN (SELECT @running_total := 0) r
 ORDER BY t.id;</code>

Notez que les jointures croisées (SELECT @running_total := 0) r sont utilisées pour déclarer des variables.

Remarques

  • Ces méthodes sont spécifiques à MySQL, ce qui signifie qu'elles peuvent ne pas fonctionner avec d'autres bases de données.
  • La clause
  • ORDER BY est cruciale, garantissant le bon ordre des calculs.
  • Les variables MySQL ont certaines limitations, comme le fait de ne pas être portables, et doivent être utilisées avec précaution dans des requêtes plus complexes.

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