Oracle聚合函数用于确定各列的百分比不为空

Eri*_*son 3 oracle aggregate-functions

请考虑下表:

id | name | phone | email
------------------------_-----
1  |  bob | null  | me@me.com
2  |  bob | null  | null
3  |  bob | 12345 | null
4  |  bob | 23456 | null
Run Code Online (Sandbox Code Playgroud)

我想要一个可以在手机和电子邮件中聚合多少字段不为空的计数的单个查询.结果将是:

phone | email
-------------
   2  |  1 
Run Code Online (Sandbox Code Playgroud)

我需要为超过一百万行的表的175列中的每一列找出这样的值.

查询不需要很漂亮,也不需要特别快.但我更喜欢它是否可以在一个(可能是嵌套的)查询中,而不是一个脚本.

Fra*_*kPl 7

关于什么

SELECT count(*) as record_count,
       count(phone) as phone_not_null,
       count(email) as email_not_null
  FROM yourtable
Run Code Online (Sandbox Code Playgroud)

count(columnname)计算该值不为空count(*)的次数,并计算记录数.