多次计数(2000列超过2000行)

时间:2017-10-25 03:48:28

标签: sql sql-server ssms

如果我不能清楚地解释自己,我会道歉但我会尽我所能。

所以我需要查询一个表(货币交易),在某个地方,比如分支R1将钱汇到另一个分支(可以是任何分支(R1-R2000))。我需要能够获得交易数量(发送的钱)。问题是分支太多(2000多个分支)。

表格如下:

enter image description here

结果如下所示:

enter image description here

之前我对此进行了相同的查询,但只考虑了不到20个分支。我做了这样的事。

SELECT 
SUM(CASE WHEN BranchCode = 'R1' THEN 1 ELSE 0 END) 'R1',
SUM(CASE WHEN BranchCode = 'R2' THEN 1 ELSE 0 END) 'R2',
 .....
SUM(CASE WHEN BranchCode = 'R20' THEN 1 ELSE 0 END) 'R20'
FROM MoneyTable

我想知道我能否以更有效的方式做到这一点。

1 个答案:

答案 0 :(得分:0)

如果没有更多信息很难说,例如你的表格看起来像什么,但假设每一行都有,BranchCode列中的值表示特定分支发送了钱,你只想数一下分支发送到任何其他分支的事务数量,查询看起来像这样。

select sending_branch, count(*)
from moneytable
group by 1

假设您想要从一个分支到另一个分支的事务计数,那么就像这样。

select sending_branch, receiving_branch, count(*)
from moneytable
group by 1,2

同样如果你想要金额

select sending_branch, receiving_branch, sum(amount)
from moneytable
group by 1,2