在 MySQL 中建立累積和欄位
在 MySQL 表中建立累積和列有多種方法,每種方法都有其自身的優點和需要考慮的地方。常見的方法是使用相關子查詢:
<code class="language-sql">SELECT t.id, t.count, (SELECT SUM(x.count) FROM TABLE x WHERE x.id <= t.id) AS cumulative_sum FROM TABLE t ORDER BY t.id;</code>
此查詢透過將目前行與表中所有先前的行關聯來計算每行的累積和,有效地聚合計數值。
或者,您可以使用 MySQL 變數:
<code class="language-sql">SELECT t.id, t.count, @running_total := @running_total + t.count AS cumulative_sum FROM TABLE t JOIN (SELECT @running_total := 0) r ORDER BY t.id;</code>
此方法使用與內聯視圖的交叉連接來初始化和更新變數 @running_total
,該變數追蹤累積和。請注意,此方法是 MySQL 特定的,可能無法移植到其他資料庫。
兩種方法都需要 ORDER BY
子句來確保結果與所需的累積和計算一致。在選擇在 MySQL 中建立累積和列的最合適方法時,請考慮應用程式的上下文和效能要求。
以上是MySQL中如何有效率地計算累計和?的詳細內容。更多資訊請關注PHP中文網其他相關文章!