首頁 >資料庫 >mysql教程 >如何在MySQL中有效率地建立累積和列?

如何在MySQL中有效率地建立累積和列?

DDD
DDD原創
2025-01-22 09:52:10147瀏覽

How to Efficiently Create a Cumulative Sum Column in MySQL?

在MySQL中建立累積和欄位

為表格新增累積和列(cumulative_sum),需要使用運行總計更新現有列。以下是兩種在MySQL中實現此目的的方法:

使用相關子查詢:

<code class="language-sql">SELECT
  t.id,
  t.count,
  (
    SELECT
      SUM(x.count)
    FROM table AS x
    WHERE
      x.id <= t.id
  ) AS cumulative_sum
FROM table AS t
ORDER BY
  t.id;</code>

此查詢使用巢狀查詢根據ID小於或等於目前行ID的行計算每行的累積和。

使用MySQL變數:

<code class="language-sql">SELECT
  t.id,
  t.count,
  (@running_total := @running_total + t.count) AS cumulative_sum
FROM table AS t
JOIN
  (SELECT @running_total := 0) AS r
ORDER BY
  t.id;</code>

此方法利用MySQL變數在迭代行時追蹤運行總計。 @running_total變數初始化為0,然後為每一行遞增計數。

注意:

  • 這些方法特定於MySQL,可能無法移植到其他資料庫。
  • 維持正確的順序至關重要,尤其是在使用變數進行複雜計算時。

以上是如何在MySQL中有效率地建立累積和列?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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