Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> MySQL

MySQL SELECT คอลัมน์สะสม (Running Sum)

คำนวณค่าสะสม (Running Total) ใน MySQL

ใช้ User-defined Variable เพื่อคำนวณ Running Sum โดยไม่ต้องใช้ Window Function (รองรับ MySQL 8.0+)

สร้างตารางและข้อมูล

CREATE TABLE accumulatedDemo (Value INT);

INSERT INTO accumulatedDemo VALUES (10), (15), (20), (25), (45);

คำสั่ง SQL

SET @previousSum = 0;
SELECT Value, @previousSum := @previousSum + Value AS AccumulatedColumn
FROM accumulatedDemo;

ผลลัพธ์

+-------+-------------------+
| Value | AccumulatedColumn |
+-------+-------------------+
| 10    | 10                |
| 15    | 25                |
| 20    | 45                |
| 25    | 70                |
| 45    | 115               |
+-------+-------------------+

MySQL 8.0+ ใช้ Window Function

SELECT Value, SUM(Value) OVER (ORDER BY Id) AS AccumulatedColumn
FROM accumulatedDemo;

ข้อดีของ Window Function

  • มาตรฐาน ANSI SQL
  • ไม่ต้องใช้ Variable
  • รองรับ PARTITION BY ได้
  • ประสิทธิภาพดีกว่า