计算分层查询的总和,按类型分组
Calculating Sum of Hierarchical Query, Grouped by Type
我有一个 table TRANSFERS,其中包含以下列:account_id
、father_account_id
、amount
、type
.
此 table 表示从特定帐户进行的所有转账、金额以及按类型(例如 food/school/taxes 等)支付的金额。
我需要做的是,对于每个主账户(一个没有父账户的账户)找出从它转移了多少钱(这意味着总结并添加从其子账户的转移),按类型。
例如:
account_id | type | amount
1234 | food | 500
1234 | taxes | 750
1111 | food | 200
1111 | school | 600
我环顾四周,找不到任何解决方案。
非常感谢任何帮助!
提前致谢!
您可以使用运算符 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
我有一个 table TRANSFERS,其中包含以下列:account_id
、father_account_id
、amount
、type
.
此 table 表示从特定帐户进行的所有转账、金额以及按类型(例如 food/school/taxes 等)支付的金额。
我需要做的是,对于每个主账户(一个没有父账户的账户)找出从它转移了多少钱(这意味着总结并添加从其子账户的转移),按类型。
例如:
account_id | type | amount
1234 | food | 500
1234 | taxes | 750
1111 | food | 200
1111 | school | 600
我环顾四周,找不到任何解决方案。 非常感谢任何帮助! 提前致谢!
您可以使用运算符 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