MySQL 如何获取另一列每个不同值的总和
您可以使用聚合函数SUM()和GROUP BY命令获取另一列每个不同值的总和。为了理解上述概念,让我们创建一个表。创建表的查询如下:
mysql> create table SumOfEveryDistinct
-> (
-> Id int not null,
-> Amount int
-> );
Query OK, 0 rows affected (0.59 sec)
使用插入命令将一些记录插入表中。查询如下:
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)
阅读更多:MySQL 教程
极客教程