oracle中如何使用group by函数

How to use group by function in oracle

下面是我的基地table

我需要根据我的基础 table 创建如下格式的视图。 这里 Deposit_Acc_Count 是 (Type -> SB,RD, FD) 的组合,Loan_Acc_Count 是 (Type ->LO) 与数量相同。

谁能帮我实现这个。

您可以在按 br_codecif 列分组时使用条件聚合,例如

SELECT br_code, cif,
       COUNT(CASE WHEN type IN ('SB','RD', 'FD') THEN Amt END) AS deposit_acc_count, 
       SUM(CASE WHEN type IN ('SB','RD', 'FD') THEN Amt ELSE 0 END) AS deposit_acc_amt, 
       COUNT(CASE WHEN type = 'LO' THEN Amt END) AS loan_acc_count, 
       SUM(CASE WHEN type = 'LO' THEN Amt ELSE 0 END) AS loan_acc_amt, 
       COUNT(*) AS total_count,
       SUM(amt) AS total_amt                   
  FROM t
 GROUP BY br_code, cif 

Demo