我有一个表TRANSFERS,其中包含以下列:account_id
,father_account_id
,amount
,type
。
此表格表示从特定帐户进行的所有资金转帐,金额以及按类型(例如食品/学校/税金等)支付的金额。
我需要做的是,每个主要帐户(没有父母的帐户)都要知道从中转移了多少钱(这意味着总结并添加来自其子帐户的转帐),按类型分组。
例如:
account_id | type | amount
1234 | food | 500
1234 | taxes | 750
1111 | food | 200
1111 | school | 600
我环顾四周,无法在任何地方找到解决方案。 任何帮助都会非常受欢迎! 提前谢谢!
答案 0 :(得分:0)
您可以使用运算符connect_by_root并为每个根ID和值求和值:
select root account_id, type, sum(amount) amount
from (
select connect_by_root(account_id) root, type, amount
from transfers
connect by father_account_id = prior account_id and type = prior type
start with father_account_id is null )
group by root, type