如何总结多列记录并一举明显地同时选择?

时间:2017-03-10 18:19:22

标签: mysql sql

我有一个包含这些项目的表

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

1 个答案:

答案 0 :(得分:3)

您可以使用group by Column1sum()要汇总的列来执行此操作。

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 |
+-----------+-------------+-------------+-------------+