获取配置单元中所有列的null百分比

ecfdbz9o  于 2021-06-02  发布在  Hadoop
关注(0)|答案(2)|浏览(284)

我想获取配置单元中表中空值的百分比。有没有一种简单的方法可以做到这一点,而不必枚举查询中的所有列名?在本例中,大约有50k行和20列。提前谢谢!
比如: SELECT count(each_column) / count(*) FROM TABLE_1 WHERE each_column = NULL;

lmvvr0a8

lmvvr0a81#

如果使用代码执行此操作,则需要列出列。有一种方法:

select avg(case when col1 is null then 1.0 else 0.0 end) as col1_null_p,
       avg(case when col2 is null then 1.0 else 0.0 end) as col2_null_p,
       . . .
from t;

如果获取表中的列列表,则可以很容易地在电子表格中构造查询。

wwtsj6pe

wwtsj6pe2#

您需要的方法取决于您的情况:
对于20个固定列:只需键入您的查询
对于200个固定列:将列名复制到您喜爱的工具(excel)并在那里生成查询
对于n个可能不固定的列:编写一个脚本来生成代码
我曾经写过一个python脚本。我现在手头上还没有,但用以下逻辑很容易创建:
查询表的前1(或0?)行,以获取所有标题。
构建所需的查询以生成基于列的统计信息(如空值的百分比)并合并结果
然后执行查询。
当然,它可以扩展为针对不同的表和统计数据运行,但是要意识到这可能无法很好地扩展。
在我的例子中,我想我每次都必须将查询构建分成20列,然后再连接起来,因为在400列上运行它只会生成一个太复杂的查询。

相关问题