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

k2arahey  于 2021-06-26  发布在  Hive
关注(0)|答案(1)|浏览(257)

我有一个查询,如何计算一个表中没有空值的行数。
假设下面的数据集有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)是这样的,所有列都是空的。
请在配置单元中建议命令以获得结果。

o7jaxewo

o7jaxewo1#

你可以用 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;

相关问题