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。
这种计算的最佳方法是什么?
答案 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;