如何根据SQL中两列的值获取列的总和

时间:2013-10-01 03:31:40

标签: sql database oracle

我有一张桌子,下面有3列。提供样本数据

column_1    column_2    column_3
   A           a           10
   A           b           20
   B           a           10
   A           a           10
   B           a           30
   A           b           40
   A           c           10
   C           a           20   

我想根据column_1和column_2的值得到column_3的总和。这意味着我希望获得column_3中值为“列”的列'_'为列_2'的值的总和,以此类推。

Sample output is given bellow
     column_1    column_2    SUM(column_3)
       A           a              20
       A           b              60
       A           c              10
       B           a              40
       C           a              20        

有人可以告诉我该怎么做

4 个答案:

答案 0 :(得分:4)

试试这个:

SELECT SUM(column_3), column_1, column_2 FROM table GROUP BY column_1, column_2

GROUP BY命令指出您要使用SUM后面的列的不同值对聚合函数(GROUP BY)进行分组。它们也出现在查询的SELECT部分中并不是“必需的”,但这是一种很好的做法(并且知道哪一行代表哪个分组的唯一方法。

显然用实际的表名替换table

答案 1 :(得分:0)

你可以使用group by with col1和col2并将col3加在下面

SELECT   SUM (col3)
    FROM test_table
GROUP BY col1, col2

答案 2 :(得分:0)

select column_1, column_2, SUM(column_3) from table group by column_1, column_2

group by允许您根据其他列的分组将聚合函数应用于列。

向后思考,group by column_1, column_2可以被视为:“为我提供column_1和column_2的所有唯一组合。然后选择SUM(column_3)将获取每组中column_3中条目的总和。

答案 3 :(得分:-1)

试试这个......

SELECT SUM(column_3), column_1, column_2 FROM table   
GROUP BY column_1, column_2