我有一个包含这些项目的表
Column_1 | Column_2 | Column_3 | Column_4
------------------------------------------
John1 1 1 2
John1 3 2 2
John1 2 3 2
Eric 4 2 2
Eric 4 7 2
Christina 1 2 2
Christina 1 2 3
我想做几件事:
1)我想获取 Column_1 中的所有记录,但我不想重复名称。例如,我知道我可以做SELECT DISTINCT Column_1 FROM MyTable
来实现这一点。作为回报,我会得到: John1,Eric,Christina
2)我还希望通过SELECT SUM(Column_2) FROM (SELECT * FROM MyTable where Column_1 = John1 ) AS p1
添加我知道我可以做的每一列的总数,这将实现这一点。作为回报,我会得到: 6
3)我也想对 Column_3 和 Column_4 做同样的事情,其中 Column_1 等于上面的特定条件。
问题:如何在一个查询中实现所有这三个查询是否可能?
我的最终结果应如下所示:
John1 6 6 6
Eric 8 9 4
Christina 2 4 5
答案 0 :(得分:3)
您可以使用group by Column1
和sum()
要汇总的列来执行此操作。
select
Column_1
, sum(Column_2) as sumColumn_2
, sum(Column_3) as sumColumn_3
, sum(Column_4) as sumColumn_4
from t
group by Column_1
rextester演示:http://rextester.com/XACANR1610
返回:
+-----------+-------------+-------------+-------------+
| Column_1 | sumColumn_2 | sumColumn_3 | sumColumn_4 |
+-----------+-------------+-------------+-------------+
| Christina | 2 | 4 | 5 |
| Eric | 8 | 9 | 4 |
| John1 | 6 | 6 | 6 |
+-----------+-------------+-------------+-------------+