【发布时间】:2019-04-30 14:03:51
【问题描述】:
我有一张这样的桌子:
col1col2col3 1 0nullnull nullnull 3nullnullnull 5 1
我希望在 Oracle 10G 中得到这样的输出:
column_namenull_countcol1 2col2 2col3 @ 987654343@
我使用 UNION ALL 实现了这一点,如下所示:
select "col1" column_name,sum(case when col1 is null then 1 else 0 end) as null_count from A group by "col1"
union all
select "col2" column_name,sum(case when col2 is null then 1 else 0 end) as null_count from A group by "col2"
union all
select "col3" column_name,sum(case when col3 is null then 1 else 0 end) as null_count from A group by "col3";
它工作正常,但需要很多时间,因为有将近 100 个 UNION ALL。我想在不使用 UNION ALL 的情况下获得相同的输出。
有什么方法可以在不使用 UNION ALL 的情况下实现这一点?
【问题讨论】: