计算分层查询的总和,按类型分组

Calculating Sum of Hierarchical Query, Grouped by Type

我有一个 table TRANSFERS,其中包含以下列:account_idfather_account_idamounttype.

此 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

SQLFiddle