如何获取不同值的列总和

时间:2015-04-21 14:41:07

标签: mysql sql

我有一张如下表所示的表格。

a1    |    a2  |  a3

Mike       3      Sam
Mike       3      John
John       2      Sam
John       1      Alex
Alex       3      Mike
Alex       2      Sam
Alex       3      John

我需要得到这样的结果:

Mike =3+3 = 6
John =2+1 = 3
Alex= 3+2+3 =8

SELECT sum (a2) from table1 WHERE a1 in (SELECT a1 FROM table1)

2 个答案:

答案 0 :(得分:3)

这是一个简单的SQL查询。

SELECT a1, SUM(a2)
FROM table
GROUP BY a1;

答案 1 :(得分:1)

对于您的示例,只需将group by a1子句添加到sql stmt。

SELECT a1, sum (a2)
from table1 
WHERE a1 in (SELECT a1 FROM table1)
GROUP BY a1;

但是你也可以省略where子句,因为它是多余的,所以 最终的代码如下所示:

SELECT a1, sum (a2)
from table1 
GROUP BY a1;
  

与GROUP BY子句组合时,SUM函数计算   GROUP BY子句中指定的每个组的总和。

请参阅以下参考资料:

http://www.mysqltutorial.org/mysql-sum/

https://dev.mysql.com/doc/refman/5.0/en/group-by-functions.html

另见这些问题的答案:

How to ORDER BY a SUM() in MySQL?