使用 GROUP BY 时如何将列数据值相加
Posted
技术标签:
【中文标题】使用 GROUP BY 时如何将列数据值相加【英文标题】:How to add up column data values when using GROUP BY 【发布时间】:2014-06-27 15:35:11 【问题描述】:我正在处理一家公用事业公司的数据。我有一个包含客户销售记录的表。每条销售记录都有客户编号、销售日期、销售凭证编号和销售金额。每个销售凭证编号只有一条记录。销售额是从包含客户在该月的每日使用量 (CCF) 的第二个表中计算出来的。这两个表由销售凭证编号连接。我需要将日常使用情况汇总为一个总数。摘要应包括上面列出的所有列,以及总使用量。这是一个数据示例。
Table A
CustomerNumber Date SalesDocNumber Amount
15422 06/14/2012 123-UTL-23001 $112.25
13784 12/07/2007 854-UTL-14096 $75.11
和
Table B
SalesDocNumber CCF
123-UTL-23001 25.45
123-UTL-23001 118
123-UTL-23001 56.10
854-UTL-14096 10.65
854-UTL-14096 15
854-UTL-14096 13
854-UTL-14096 22.75
854-UTL-14096 31
这是我的查询
SELECT A.CustomerNumber,
A.Date,
A.SalesDocNumber,
A.Amount
B.CCF
FROM Table A INNER JOIN Table B ON A.SalesDocNumber = B.SalesDocNumber
GROUP BY A.CustomerNumber, A. Date, A.SalesDocNumber, A. Amount, B.CCF
我的结果为表 B 中的每条记录显示一行,而不是将它们汇总到一行中。
预期结果是
15422 06/14/2012 123-UTL-23001 $112.25 199.55
13784 12/07/2001 854-UTL-14096 $75.11 92.40
任何帮助表示赞赏!
【问题讨论】:
【参考方案1】:SELECT A.CustomerNumber,
A.Date,
A.SalesDocNumber,
A.Amount
B.CCF
FROM TableA A
INNER JOIN (SELECT SalesDocNumber, SUM(CCF) AS CCF FROM TableB GROUP BY SalesDocNumber) B
ON A.SalesDocNumber = B.SalesDocNumber
【讨论】:
以上是关于使用 GROUP BY 时如何将列数据值相加的主要内容,如果未能解决你的问题,请参考以下文章
有没有办法将列的值聚合和/或连接为 Group By 查询中的逗号分隔项?
如何使用 R 和 dplyr 中连续的元素执行 group_by