首頁 > 資料庫 > mysql教程 > 如何在 MySQL 中高效計算運行總計?

如何在 MySQL 中高效計算運行總計?

DDD
發布: 2025-01-22 06:26:08
原創
235 人瀏覽過

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
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板