hive对有null值的列进行avg,sum,count等操作时会不会过滤null值

Posted hyhy904

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了hive对有null值的列进行avg,sum,count等操作时会不会过滤null值相关的知识,希望对你有一定的参考价值。

在hive中,我们经常会遇到对某列进行count、sum、avg等操作计算记录数、求和、求平均值等,但这列经常会出现有null值的情况,那这些操作会不会过滤掉null能呢?

下面我们简单测试下:

with tmp as
(
select null as col1
union all
select 666 as col1
union all
select 999 as col1
)
select avg(col1) avg_numm, sum(col1) sum_num, count(1) cnt, count(col1) cnt_col1
from tmp

832.5 1665 3 2
1
2
3
4
5
6
7
8
9
10
11
12
从结果中很容易得出结论:avg、sum、count都会过滤掉null值
---------------------

以上是关于hive对有null值的列进行avg,sum,count等操作时会不会过滤null值的主要内容,如果未能解决你的问题,请参考以下文章

如何在 mongodb 中查找包含 NaN 值的字段的 $avg 和 $sum?

Hive分析窗口函数 SUM,AVG,MIN,MAX

Hive分析窗体函数之SUM,AVG,MIN和MAX

SQL Hive - 计算前几个月的滚动 SUM、AVG

聚集函数

SQL:具有 NULL 值的 AVG