首頁 >資料庫 >mysql教程 >如何使用單一查詢計算 MySQL 中的運行總計?

如何使用單一查詢計算 MySQL 中的運行總計?

Linda Hamilton
Linda Hamilton原創
2025-01-22 06:46:10611瀏覽

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

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