如何在 MySQL 中计算另一列中每个不重复值的总和?


借助聚合函数 SUM() 和 GROUP BY 命令,可以获取另一列中每个不重复值的总和。为理解上述概念,让我们创建一个表。创建表的查询如下

mysql> create table SumOfEveryDistinct
   -> (
   -> Id int not null,
   -> Amount int
   -> );
Query OK, 0 rows affected (0.59 sec)

使用 insert 命令在表中插入一些记录。查询如下

mysql> insert into SumOfEveryDistinct values(10,100);
Query OK, 1 row affected (0.19 sec)
mysql> insert into SumOfEveryDistinct values(11,200);
Query OK, 1 row affected (0.20 sec)
mysql> insert into SumOfEveryDistinct values(12,300);
Query OK, 1 row affected (0.14 sec)
mysql> insert into SumOfEveryDistinct values(10,400);
Query OK, 1 row affected (0.20 sec)
mysql> insert into SumOfEveryDistinct values(11,500);
Query OK, 1 row affected (0.10 sec)
mysql> insert into SumOfEveryDistinct values(12,600);
Query OK, 1 row affected (0.13 sec)
mysql> insert into SumOfEveryDistinct values(10,700);
Query OK, 1 row affected (0.10 sec)
mysql> insert into SumOfEveryDistinct values(11,800);
Query OK, 1 row affected (0.18 sec)
mysql> insert into SumOfEveryDistinct values(12,900);
Query OK, 1 row affected (0.19 sec)

使用 select 语句显示表中的所有记录。查询如下

mysql> select *from SumOfEveryDistinct;

输出如下

+----+--------+
| Id | Amount |
+----+--------+
| 10 |    100 |
| 11 |    200 |
| 12 |    300 |
| 10 |    400 |
| 11 |    500 |
| 12 |    600 |
| 10 |    700 |
| 11 |    800 |
| 12 |    900 |
+----+--------+
9 rows in set (0.00 sec)

以下是计算另一列中每个不重复值的总和的查询

mysql> select Id, sum(Amount) as TotalSum from SumOfEveryDistinct
   -> group by Id;

输出如下

+----+----------+
| Id | TotalSum |
+----+----------+
| 10 |     1200 |
| 11 |     1500 |
| 12 |     1800 |
+----+----------+
3 rows in set (0.00 sec)

更新于: 30-Jul-2019

3K+ 浏览量

开启您的职业生涯

完成课程即可获得认证

开始
广告