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

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

DDD
DDD原創
2025-01-22 06:26:08236瀏覽

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中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn