将SUM函数与SQL连接一起使用

时间:2016-06-06 12:18:51

标签: mysql sql

考虑两个表,如下所示:

              table_a            table_b
          ----------------    ---------------      
          |Name | link_id |   | id | amount |  
          -----------------   ---------------
          | M   |  2      |   | 2  | 100    |
          | N   |  3      |   | 3  | 20     |
          | M   |  2      |   | 2  | 10     |
          ----------------    | 3  | 200    |   
                              ----------------

现在我想获得用户名和他拥有的金额总和。预期的输出应该是:

           -----------------------         
          |Name | his_sum_amount |
          ------------------------
          | M   |  110           | 
          | N   |  220           |
           -----------------------

为此我写了一个查询,如下所示:

select name,sum(amount) from table_a inner join table_b on table_a.link_id=table_b.id; 

但是上面的查询是给出全部金额,我怎样才能获得个别金额。

2 个答案:

答案 0 :(得分:3)

在大多数数据库中,由于name中的select,您的查询会产生错误。

您只是遗漏了group by

  select name, sum(amount)
  from table_a inner join
       table_b
       on table_a.link_id = table_b.id
  group by name;

答案 1 :(得分:0)

按名称GROUP BY使用SUM

SELECT a.name, SUM(b.amount) AS his_sum_amount
FROM table_a a 
INNER JOIN table_b b ON a.link_id = b.id
GROUP BY a.name

输出

name  his_sum_amount
M     220
N     220

SQL小提琴:http://sqlfiddle.com/#!9/00085/1/0