我有一个查询如何计算表中不存在空值的行数。
假设下面的数据集有 8 列 h1,h2,h3......h8。如果所有列都为 NULL,则计数为 0。如果至少一列具有值,则计数为 1。
h1 h2 h3 h4 h5 h6 h7 h8
U U NULL U Y NULL Y X
U NULL U U Y Y X X
U U U NULL U NULL Y NULL
NULL NULL NULL NULL NULL NULL NULL NULL
X V U U Y NULL Z X
Y X NULL X Y Z U
X NULL U NULL NULL U Z Y
NULL NULL NULL NULL NULL NULL NULL NULL
Run Code Online (Sandbox Code Playgroud)
对于上述数据集,答案将为 6。因为只有两行(4 和 6)的所有列均为 NULL。
请建议 hive 中的命令来获取结果。
CASE您可以使用,COALESCE和的组合SUM。
SELECT SUM (
CASE
WHEN COALESCE (h1, h2, h3, h4, h5, h6, h7, h8) IS NOT NULL
THEN 1
ELSE 0
END)
FROM yourtable;
Run Code Online (Sandbox Code Playgroud)