首页 > 数据库 > mysql教程 > 如何使用单个查询计算 MySQL 中的运行总计?

如何使用单个查询计算 MySQL 中的运行总计?

Linda Hamilton
发布: 2025-01-22 06:46:10
原创
565 人浏览过

How to Calculate Running Totals in MySQL with a Single Query?

使用单个查询在 MySQL 中高效计算运行总计

本指南演示了一个 MySQL 查询来计算每日订单计数的运行总计,假设您的数据包含 date 列和指示成功付款的 hasPaid 标志。

这是优化后的查询:

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

此查询将变量 @runtot 初始化为零。 然后,核心逻辑计算每日订单数 (COUNT(*) AS c),并在单个 @runtot := @runtot COUNT(*) AS rt 语句中同时更新运行总计 (SELECT)。这避免了子查询或多次传递的需要,从而提高了效率。 GROUP BY d 子句按天对结果进行分组,并且 ORDER BY d 确保按顺序计算运行总计。 此方法有效地生成运行总计列 (rt) 以及每日订单数 (c) 和日期 (d)。

以上是如何使用单个查询计算 MySQL 中的运行总计?的详细内容。更多信息请关注PHP中文网其他相关文章!

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