如何在单个SQL查询中执行多个SUM语句?

时间:2016-10-24 20:15:48

标签: mysql sql database sum

我对SQL很陌生,我需要弄清楚如何在同一个语句中运行多个总和。例如,假设你有一张像这样的表......

+----+---------------+-------------+------------+-----------+
| id | name          | order_num   | cost       | company   |
+----+---------------+-------------+------------+-----------+
|  1 | John Smith    |           0 |      10.00 |  CompanyA |
|  2 | Sally Thomas  |           1 |      38.00 |  CompanyA |
|  2 | Sally Thomas  |           2 |      12.00 |  CompanyA |
|  1 | John Smith    |           3 |      19.00 |  CompanyA |
|  2 | Jimmy John    |           4 |      40.00 |  CompanyB |
+----+---------------+-------------+------------+-----------+

我想写一个查询,返回在CompanyA的每个客户花费的名称和总金额。所以基本上......

+---------------+------------+
| name          | total      |
+---------------+------------+
| John Smith    |      29.00 |
| Sally Thomas  |      50.00 |
| Jimmy John    |       0.00 |
+---------------+------------+

要做到这一点,我知道我将需要使用sum函数。但到目前为止,我所尝试的所有内容都会导致整个专栏的总结,而不是每个人的各个部分。这只是我所做的更大表格的简化示例,因此我事先并不知道任何现场数据。如何在一个查询中执行多个求和以获得此结果?谢谢!

另外,如果重要的话,我会使用MySQL。

1 个答案:

答案 0 :(得分:4)

我想你想要:

select name, sum(case when company = 'CompanyA' then cost else 0 end) as Total
from t
group by name;