首页 >数据库 >mysql教程 >如何在MySQL中高效创建累积和列?

如何在MySQL中高效创建累积和列?

DDD
DDD原创
2025-01-22 09:52:10197浏览

How to Efficiently Create a Cumulative Sum Column in MySQL?

在MySQL中创建累积和列

为表添加累积和列(cumulative_sum),需要使用运行总计更新现有列。以下是两种在MySQL中实现此目的的方法:

使用相关子查询:

<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>

此查询使用嵌套查询根据ID小于或等于当前行ID的行计算每行的累积和。

使用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>

此方法利用MySQL变量在迭代行时跟踪运行总计。@running_total变量初始化为0,然后为每一行递增计数。

注意:

  • 这些方法特定于MySQL,可能无法移植到其他数据库。
  • 维持正确的顺序至关重要,尤其是在使用变量进行复杂计算时。

以上是如何在MySQL中高效创建累积和列?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn