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