使用單一查詢在 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中文網其他相關文章!