Hive 计算配置单元中非空值的行数

Hive 计算配置单元中非空值的行数,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

我有一个查询,如何计算一个表中不包含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    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出现的次数。