首页 > 数据库 > mysql教程 > 如何在 MySQL 中高效计算运行总计?

如何在 MySQL 中高效计算运行总计?

DDD
发布: 2025-01-22 06:26:08
原创
234 人浏览过

How to Efficiently Calculate Running Totals in MySQL?

MySQL 运行总计:使用用户变量的解决方案

本文最初标题为“在 MySQL 中计算运行总计”,旨在向表中添加一列,显示先前列值的累积和。然而,提供的答案表明,在表达式中使用用户变量现已弃用,并将在未来的版本中删除。因此,我们提供一个更简单的解决方案,它涉及初始化一个运行总计变量,并使用数学计算执行单个查询以实现所需的结果。

提供的查询如下:

<code class="language-sql">SET @runtot:=0;
SELECT
   q1.d,
   q1.c,
   (@runtot := @runtot + q1.c) AS rt
FROM
   (SELECT
       DAYOFYEAR(`date`) AS d,
       COUNT(*) AS c
    FROM  `orders`
    WHERE  `hasPaid` > 0
    GROUP  BY d
    ORDER  BY d) AS q1</code>
登录后复制

此查询首先使用 SET 语句将用户变量 @runtot 初始化为 0。然后,它执行子查询以从 orders 表中检索必要的数据。最后,外部查询将子查询的结果与运行总计计算结合起来。

生成的表将包含一个名为 rt 的附加列,该列表示每一行的 c 列的运行总计。此解决方案避免了在表达式中使用已弃用的用户变量,并通过单个查询执行提供了更有效的方法。

以上是如何在 MySQL 中高效计算运行总计?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板