Computer >> Máy Tính >  >> Lập trình >> MySQL

Làm thế nào để tạo một cột tổng tích lũy trong MySQL?

Để tạo cột tổng tích lũy trong MySQL, bạn cần tạo một biến và đặt giá trị thành 0. Tổng tích lũy tăng từng bước giá trị tiếp theo với giá trị hiện tại.

Đầu tiên, bạn cần tạo một biến với sự trợ giúp của SET. Cú pháp như sau -

set @anyVariableName:= 0;

Cú pháp để tạo một cột tổng tích lũy trong MySQL như sau -

select yourColumnName1,yourColumnName2,........N,(@anyVariableName := @anyVariableName + yourColumnName2) as anyVariableName
from yourTableName order by yourColumnName1;

Để hiểu khái niệm trên, chúng ta hãy tạo một bảng. Sau đây là truy vấn để tạo bảng -

mysql> create table CumulativeSumDemo
   −> (
   −> BookId int,
   −> BookPrice int
   −> );
Query OK, 0 rows affected (0.67 sec)

Chèn một số bản ghi trong bảng với sự trợ giúp của câu lệnh select. Truy vấn để chèn bản ghi như sau -

mysql> insert into CumulativeSumDemo values(101,400);
Query OK, 1 row affected (0.15 sec)

mysql> insert into CumulativeSumDemo values(102,500);
Query OK, 1 row affected (0.16 sec)

mysql> insert into CumulativeSumDemo values(103,600);
Query OK, 1 row affected (0.16 sec)

mysql> insert into CumulativeSumDemo values(104,1000);
Query OK, 1 row affected (0.18 sec)

Hiển thị tất cả các bản ghi mà tôi đã chèn với sự trợ giúp của lệnh insert. Truy vấn như sau -

mysql> select *from CumulativeSumDemo;

Sau đây là kết quả -

+--------+-----------+
| BookId | BookPrice |
+--------+-----------+
|    101 |       400 |
|    102 |       500 |
|    103 |       600 |
|    104 |      1000 |
+--------+-----------+
4 rows in set (0.00 sec)

Để thêm cột tổng tích lũy, trước tiên bạn cần tạo một biến. Truy vấn như sau -

mysql> set @CumulativeSum := 0;
Query OK, 0 rows affected (0.00 sec)

Thực hiện cú pháp trên đã thảo luận ở phần đầu để thêm cột tổng tích lũy. Truy vấn như sau -

mysql> select BookId,BookPrice,(@CumulativeSum := @CumulativeSum + BookPrice) as CumSum
   −> from CumulativeSumDemo order by BookId;

Sau đây là kết quả đầu ra. Tại đây, cột tổng tích lũy cũng hiển thị -

+--------+-----------+--------+
| BookId | BookPrice | CumSum |
+--------+-----------+--------+
|    101 |       400 |    400 |
|    102 |       500 |    900 |
|    103 |       600 |   1500 |
|    104 |      1000 |   2500 |
+--------+-----------+--------+
4 rows in set (0.00 sec)