我有一张如下表所示的表格。
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)
答案 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
另见这些问题的答案: