使用 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 查询中的逗号分隔项?

sql将同一个表中的两列Int数据相加,有些数据是空的

如何使用 R 和 dplyr 中连续的元素执行 group_by

每次python中的秒表达到8的倍数(8、16、24、32等...)时,如何使变量的值相加

Python 两个字典如何实现相加?(相同的键,值相加)

LINQ Group By操作