在 SQL Server 2012 中,我有一个表 my_table
,其中包含列 state、month、ID
和 sales
。
我的目标是将具有相同州、月份、ID
的不同行合并到一行中,同时将这些选定行的 sales
列求和到合并的行中。
例如:
state month ID sales
-------------------------------
FL June 0001 12,000
FL June 0001 6,000
FL June 0001 3,000
FL July 0001 6,000
FL July 0001 4,000
TX January 0050 1,000
MI April 0032 5,000
MI April 0032 8,000
CA April 0032 2,000
这就是我应该得到的
state month ID sales
-------------------------------
FL June 0001 21,000
FL July 0001 10,000
TX January 0050 1,000
MI April 0032 13,000
CA April 0032 2,000
我做了一些研究,发现自连接应该做与我应该得到的类似的事情。
最佳答案
除非我遗漏了要求中的某些内容,否则为什么不直接使用带有GROUP BY
的聚合函数:
select state, month, id, sum(sales) Total
from yourtable
group by state, month, id
order by id
结果是:
| STATE | MONTH | ID | TOTAL |
--------------------------------
| FL | July | 1 | 10000 |
| FL | June | 1 | 21000 |
| CA | April | 32 | 2000 |
| MI | April | 32 | 13000 |
| TX | January | 50 | 1000 |
关于sql - 将多行中的值求和到一行中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13940397/