MySQL 如何创建累计总和列
要在MySQL中创建累计总和列,您需要创建一个变量,并将值设置为0。累计总和逐步增加下一个值,并与当前值一起增加。
首先,您需要使用SET来创建一个变量。语法如下 –
set @任意变量名称:= 0;
在MySQL中创建累计总和列的语法如下 –
select 列名称1,列名称2,........N,(@任意变量名称:= @任意变量名称 + 列名称2)as 任意变量名称
from 表名称 order by 列名称1;
为了理解上述概念,让我们创建一个表。以下是创建表的查询 –
mysql> create table CumulativeSumDemo
-> (
-> BookId int,
-> BookPrice int
-> );
Query OK, 0 rows affected (0.67 sec)
使用select语句将记录插入表中。插入记录的查询如下 –
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)
使用insert命令显示插入的所有记录。查询如下 –
mysql> select * from CumulativeSumDemo;
以下是输出结果 –
+--------+-----------+
| BookId | BookPrice |
+--------+-----------+
| 101 | 400 |
| 102 | 500 |
| 103 | 600 |
| 104 | 1000 |
+--------+-----------+
4 rows in set (0.00 sec)
要添加累计总和列,首先需要创建一个变量。查询如下 –
mysql> set @CumulativeSum := 0;
Query OK, 0 rows affected (0.00 sec)
实现上述在开始讨论中的语法以添加累计总和列。查询如下 –
mysql> select BookId,BookPrice,(@CumulativeSum := @CumulativeSum + BookPrice) as CumSum
-> from CumulativeSumDemo order by BookId;
以下是输出结果,累计总和列也可见 –
+--------+-----------+--------+
| BookId | BookPrice | CumSum |
+--------+-----------+--------+
| 101 | 400 | 400 |
| 102 | 500 | 900 |
| 103 | 600 | 1500 |
| 104 | 1000 | 2500 |
+--------+-----------+--------+
4 rows in set (0.00 sec)
阅读更多:MySQL 教程