2016-11-23 18 views
0

DB:ORACLESUM有不同的多行

嗨,大家好。我构造查询和我有如下情况:

我的表

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

所以我想总结我的风险有多少的因素有每个风险e口每风险有多大的控制有太多。

结果

-------------------------------------- 
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

按前两字段分组count()第三个? – tvm

+1

你尝试过什么吗? – Aleksej

+0

是的,我试了一个简单的总和。我创建了一个视图,当风险因子和控制之间存在关系时,我使用风险表加入了一个视图,例如: SELECT RK.NAME, SUM(当RFC.RISKFACTOR不为NULL时,则为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 –

回答

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 
+0

非常感谢你,你的查询工作 –