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_code
和 cif
列分组时使用条件聚合,例如
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
下面是我的基地table
我需要根据我的基础 table 创建如下格式的视图。 这里 Deposit_Acc_Count 是 (Type -> SB,RD, FD) 的组合,Loan_Acc_Count 是 (Type ->LO) 与数量相同。
谁能帮我实现这个。
您可以在按 br_code
和 cif
列分组时使用条件聚合,例如
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