计算Hive中列的缺失/默认值行的最佳方法是什么?

时间:2016-01-21 01:39:47

标签: hive hiveql

select 
count(COLUMN_A is null or COLUMN_A like '0*') as num_miss_rows,
count(*) as num_total_rows
from tableX;

无效。因为任何expr上的count(expr)函数递增都会返回非空值,甚至为0。

我想为许多列计算num_miss_rows / num_total_rows。

这种计算的最佳方法是什么?

1 个答案:

答案 0 :(得分:0)

你想在一个总和中使用一个案例(也应该是like 0%而不是like 0*):

select 
sum(case when COLUMN_A is null or COLUMN_A like '0%' then 1 end) as num_miss_rows,
count(*) as num_total_rows
from tableX;