2016-12-05 56 views
0

全部请帮助查询。 我需要通过用户和部门的每个行中的缺失值和空值百分比来查询用户信息的几个表。 员工需要将此信息注册到系统。基本上我们需要报告员工向系统提供的缺失值。例如, ;查询结果在Oracle SQL中查找每行中空值的百分比

COL_1 |COL_2 |COL_3 |COL_4 |count % d% 
----------------------------- ------------ 
user1 | dept1 | NULL | X |1  50  
user2 | dept2 | NULL | NULL |2  100 
user3 | dept1 | X | X |0  0 
user4 | dept2 | NULL | X |1  50 

感激,如果你能帮助我与此查询。谢谢。

+0

所以COL_1到col_4是当前表中的数据,而现在要计算这两个最右边的列? – jarlh

+0

感谢jarlh,以及col_1到col_4是来自多个表格的查询结果。我需要计算最右边的列。谢谢。 –

+0

请从源表中获取一些示例数据以及您需要获取的样本数据结果。 – Kacper

回答

0
SELECT t.*, 
     NVL2(COL_3, 0, 1) + NVL2(COL_4, 0, 1) AS "Count %", 
     NVL2(COL_3, 0, 50) + NVL2(COL_4, 0, 50) AS "d%" 
FROM table_name t 
+0

您好MTO,您能否在Oracle中提供此查询?谢谢 –

+0

@FelixZ这是一个Oracle查询。 – MT0

0
SELECT a.col_1 
     , a.col_2 
     , COUNT (*) "count" 
     , SUM (CASE WHEN a.col_3 IS NULL THEN 1 ELSE 0 END)/COUNT (*) * 100 "d%" 
    FROM table1 a 
GROUP BY col_1, col_2;