获取每个名称的总成本总和

Posted

技术标签:

【中文标题】获取每个名称的总成本总和【英文标题】:Getting the SUM of total cost for each name 【发布时间】:2015-12-01 08:06:48 【问题描述】:

我正在尝试通过下表在 mysql 中获得以下结果:我 曾尝试使用sum (case when),但它给了我一个结果 仅个人姓名,我想在报告中列出每个人的总费用 用户。

注意:ID列不重要,可以忽略。

mysql> select * from calls_records;

+----+-------+------------+------+
| id | month | name       | cost |
+----+-------+------------+------+
|  1 | 1     | osama      |   40 |
|  2 | 1     | rahman     |   40 |
|  3 | 1     | ahmed      |   30 |
|  4 | 1     | ali albann | 10.5 |
|  5 | 2     | osama      |   10 |
|  6 | 2     | ali albann |   30 |
|  7 | 2     | ahmed      |   10 |
|  8 | 2     | rahman     |   10 |
+----+-------+------------+------+

预期结果

+-----------+---------------------------+
| name       | total_cost_for_each_user  |
+------------+---------------------------+
| ahmed      |   50                      |
| ali albann | 40.5                      |
| osama      |   50                      |
| rahman     |   50                      |
+------------+---------------------------+

【问题讨论】:

尝试GROUP BY name 我试过了,但它不会给你每个用户的总费用。 在你的例子中 id 列来自哪里。当你分组时,拥有这个 id 没有意义.. 预期输出中的偶数月列没有意义 按名称从calls_records组中选择名称,总和(成本)作为total_cost_for_each_user 【参考方案1】:

查询

select name, sum(cost) as totalcost
from calls_records
group by name
;

输出

+------------+-----------+
|    name    | totalcost |
+------------+-----------+
| ahmed      | 40        |
| ali albann | 40.5      |
| osama      | 50        |
| rahman     | 50        |
+------------+-----------+

sqlfiddle

【讨论】:

以上是关于获取每个名称的总成本总和的主要内容,如果未能解决你的问题,请参考以下文章

如何在 MS Access 中创建一个查询,允许您汇总每个客户的总成本?

按人计算总花费时间和总成本

如何在 SQL 中获取一行和三列(使用每个信使的成本总和)?

合并相同名称并获取支持数据的总和 - Reprex

如何获取每年的积分名称和最大总和值?

访问 XP 报表总和计算