SUM具有不同的多行

时间:2016-11-23 17:53:25

标签: oracle sum

DB:ORACLE

你好。我正在构建一个查询,我有以下情况:

我的表

---------------------------------------
Risk         Risk Factor     Control
---------------------------------------
RK 1            RF 1         Control 1
RK 1            RF 1         Control 2
RK 2            RF 3         Control 1
---------------------------------------

因此,我想总结一下每个风险的风险因素,以及我对风险的控制程度。

结果

--------------------------------------
Risk         SUM RF     SUM Control
--------------------------------------
RK 1            1            2
RK 2            1            1
--------------------------------------

有谁知道如何解决这个问题?

亲切的问候

我尝试了一个简单的总和。我创建了一个视图,当有一个风险因素和控制之间的关系,所以我与风险表进行了连接,例如:

SELECT RK.NAME, 
       SUM(CASE WHEN RFC.RISKFACTOR IS NOT NULL THEN 1 ELSE 0) SUM_RK, 
       SUM(CASE WHEN RFC.CONTROL IS NOT NULL THEN 1 ELSE 0) SUM_CONTROL 
FROM T_RISK RK 
JOIN V_RF_CONTROL RFC 
ON RFC.RELATIONID = RK.RISKID

1 个答案:

答案 0 :(得分:0)

你不需要在这里总结 - 你只需要计算不同的值:

SELECT RK.NAME, 
       COUNT(DISTINCT RFC.RISKFACTOR) SUM_RK, 
       COUNT(DISTINCT RFC.CONTROL) SUM_CONTROL 
FROM   T_RISK RK 
JOIN   V_RF_CONTROL RFC ON RFC.RELATIONID = RK.RISKID