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值
---------------------

原文地址:https://www.cnblogs.com/hyhy904/p/11082213.html

时间: 2024-08-04 18:14:12

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

Hive函数详解与案列实战

1.Hive系统内置函数 1.1.数值计算函数 1.取整函数: round 语法: round(double a)返回值: BIGINT说明: 返回double类型的整数值部分 (遵循四舍五入) hive> select round(3.1415926) from tableName; 3 hive> select round(3.5) from tableName; 4 hive> create table tableName as select round(9542.158) fro

SqlSever基础 where is null 判断某个列的内容是否为null

镇场诗:---大梦谁觉,水月中建博客.百千磨难,才知世事无常.---今持佛语,技术无量愿学.愿尽所学,铸一良心博客.------------------------------------------ 1 code 1 --创建一个数据库 2 create database helloworld1 3 4 --用helloworld1这个数据库 5 use helloworld1 6 7 --创建一个表格teacher 8 create table Teacher 9 ( 10 Id int p

数据值、列类型和数据字段属性

数据值:数值型.字符型.日期型和空值等. 数据列类型 2.1 数值类的数据列类型 2.2 字符串类数据列类型 2.3 日期和时间型数据数据列类型 另外,也可以使用整形列类型存储UNIX时间戳,代替日期和时间列类型,这是基于PHP的web项目中常见的方式.例如,图书的发布时间,就          可以在创建books表的时候使用整型列类型,然后调用PHP的time()函数获取当前的时间戳存在该列中. 3.数据字段属性 1)unsigned:该属性只能用于设置数值类型,不允许数据列出现负数. 2)

jackson 转json. 过滤null值

@Test public void tttttt() throws JsonGenerationException, JsonMappingException, IOException { ObjectMapper mapper = new ObjectMapper(); // 过滤对象的null属性. mapper.setSerializationInclusion(Inclusion.NON_NULL); // 过滤map中的null值 mapper.configure(Serializat

使用pivot和聚合函数将表中的行的值转为列产生新的表

原表格:V_ChannelReward结构为: select * from V_ChannelReward pivot (max(RewardSum) for RewardItem in ([星级奖励],[自建空充酬金],[首充酬金],[BOSS待办酬金],[激活酬金],[神州行上网套餐拓展酬金],[其他],[新增客户与裸机捆绑销售],[实名登记酬金],[宽带业务酬金],[2G渠道体系酬金],[3G渠道体系酬金],[数据业务酬金],[开户激励酬金],[开户基础酬金],[在网酬金],[维系酬金],

automapper如何全局配置map条件过滤null值空值对所有映射起效

原文 automapper如何全局配置map条件过滤null值空值对所有映射起效 我们在使用automapper的时候经常会遇到这样的问题:假设展示给用户的数据我们用UserDto类,User类就是我们的实体类.在给用户编辑的时候,我们可能某些字段在数据库中为Null,这时候需要一些默认值 比如这里UserDto中的BirTime,然后我们有一些人的习惯是在构造函数里面进行赋值 public class User { public int Id { get; set; } public stri

关于有默认值的字段在用EF做插入操作时的思考(续)

原文:关于有默认值的字段在用EF做插入操作时的思考(续) 问题描述 今天下午(看现在这时间,应该是昨天下午了哈),园友 choon 写了这样一篇博文<关于有默认值的字段在用EF做插入操作时的思考>. 博文内容主要记录的是 choon 使用 EF 做数据插入与更新时,字段默认值的问题,这个问题我们平常应该都会遇到,但是,最后博文内容包括评论,并没人能给出一个准确的答案,真是很可惜(知识点的博文都是一侃一大堆,而这些实际项目遇到的问题却回答不上来,又有什么用呢,哎...).详细内容请查看上面的博文

关于有默认值的字段在用EF做插入操作时的思考

今天在用EF做插入操作的时候发现数据库中一个datetime类型的字段(CreateDate)的值居然全部为null.于是赶紧看表结构发现CreateDate字段居然是允许为空的. 虽然为空,但是设置了默认值getdate(),按说不应该为null的.于是开始测试. 字段允许Null值的情况 Users表结构如下: 假如一个字段有了默认值,并且又允许为Null,在做插入操作时会发生什么? 如上图中的表结构,CreateDate是允许为null的,而又有默认值getdate().这样在用传统SQL

iOS开发——model类模板(过滤null和ID)

        说明:model类模板已默认过滤null值,附加特殊情况的关键字ID名的冲突(需手动去掉注释代码).MyMessageModel为示例的名字.可以自己随便起. 1.自己创建一个继承与NSObject的类,用于当model数据模型用.然后在.h文件中根据接口文档或者json返回数据的添加相应属性.    并复制以下model类模板代码.h文件的- (instancetype)initWithDictionary:(NSDictionary *)dictionary;方法到自己创建的