首頁 >資料庫 >mysql教程 >在沒有內建分析函數的情況下,如何在 MySQL 中計算累積和?

在沒有內建分析函數的情況下,如何在 MySQL 中計算累積和?

Linda Hamilton
Linda Hamilton原創
2025-01-05 04:08:42202瀏覽

How Can I Calculate Cumulative Sums in MySQL Without Built-in Analytic Functions?

MySQL 中的累積和計算

此查詢解決了計算MySQL 中一組行的累積和的問題,其中所需的輸出包括ID、天、小時、金額和累計總計列。產生原始資料的初始查詢涉及連接和聯合等複雜操作。

MySQL 的限制和替代方法

MySQL 缺乏直接分析函數提供累積和計算。但是,有兩種可能的方法:

相關子查詢方法

此方法對每行使用子查詢來確定小計,這對於大型資料集和複雜查詢。

使用者變數控制中斷處理

此方法利用 MySQL 使用者變數來模擬控制中斷處理並依照行順序累積累加和。以下是詳細的實作:

  1. 初始化:內聯視圖將 ID 和 Day 的使用者變數初始化為 null,並將累積總數初始化為零。
  2. 包裝器查詢: 原始查詢括在括號中並分配一個別名以引入排序
  3. 累積和邏輯: 外部查詢比較相鄰行的ID 和Day 值。如果它們匹配,則會將當前金額加到儲存在使用者變數中的累計總額中。如果它們不同,則會將累積總計重設為當前金額。
  4. 使用者變數更新:計算累積總計後,將使用目前行的 ID 和 Day 值更新使用者變量,準備下一行處理。

透過合併這些步驟,即使在沒有標準分析的情況下,MySQL 也可以有效地模擬累積和計算功能。

以上是在沒有內建分析函數的情況下,如何在 MySQL 中計算累積和?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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