Maison >base de données >tutoriel mysql >Comment créer efficacement une colonne de somme cumulative dans MySQL ?

Comment créer efficacement une colonne de somme cumulative dans MySQL ?

DDD
DDDoriginal
2025-01-22 09:52:10217parcourir

How to Efficiently Create a Cumulative Sum Column in MySQL?

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

Pour ajouter une colonne de somme cumulée (cumulative_sum) au tableau, vous devez mettre à jour la colonne existante avec un total cumulé. Voici deux façons d’y parvenir dans MySQL :

Utiliser une sous-requête corrélée :

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

Cette requête utilise une requête imbriquée pour calculer la somme cumulée de chaque ligne en fonction des lignes dont les ID sont inférieurs ou égaux à l'ID de ligne actuel.

Utiliser les variables MySQL :

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

Cette méthode utilise des variables MySQL pour suivre le total cumulé lors de l'itération sur les lignes. La variable @running_total est initialisée à 0 puis incrémentée pour chaque ligne.

Remarque :

  • Ces méthodes sont spécifiques à MySQL et peuvent ne pas être portables vers d'autres bases de données.
  • Le maintien du bon ordre est crucial, en particulier lorsque vous utilisez des variables pour des calculs 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