Hive 计算配置单元中非空值的行数
我有一个查询,如何计算一个表中不包含null值的行数 假设下面的数据集有8列h1、h2、h3……h8。如果列的所有值都为NULL,则计数为0。如果至少有一列具有值,则计数为1Hive 计算配置单元中非空值的行数,hive,Hive,我有一个查询,如何计算一个表中不包含null值的行数 假设下面的数据集有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
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
对于上述数据集,答案为6。因为只有两行(4和6)是这样的,所有列都是空的
请建议在配置单元中使用命令以获得结果。您可以结合使用
案例
、合并
和总和
SELECT SUM (
CASE
WHEN COALESCE (h1, h2, h3, h4, h5, h6, h7, h8) IS NOT NULL
THEN 1
ELSE 0
END)
FROM yourtable;
谢谢你的代码,它的工作!我试着用下面的逻辑,但这是错误的。你能告诉我哪里错了吗。选择sum(h1为空时的情况下,其他0(h2为空时的情况下,其他0(h3为空时的情况下,其他0)(h4为空时的情况下,其他0(h5为空时的情况下,其他0)(h6为空时的情况下,其他0(h8为空时的情况下,其他0)作为表中的计数单位)@PritamSingh:除了一个之外,所有案例都缺少
END
关键字。另外,请阅读:对于上述相同的数据集,我们如何计算表中值的出现率。简而言之,计算数据集中U、Y、X、Z、V出现的次数。