hive之异常值处理

本文探讨了Hive中处理NULL值的方法,如COUNT(1)用于统计包含NULL的日志数,以及使用IS NOT NULL进行非空判断。此外,还提到在逻辑统计时遇到的问题,如何在用户多条记录情况下统计满足特定条件的数据量,提出了利用MIN和MAX解决思路。
摘要由CSDN通过智能技术生成

NULL值类型

count(col_name) 如果col_name的值是NULL,那么COUNT是不会把它算进去的,所以想统计所有日志数要使用COUNT(1)

而想对非空列进行相关操作,需要使用col_name IS NOT NULL. 而不是LENGTH(col_name>1), 因为LENGTH(NULL)是没有结果的

---------------------------------------------------------20170608更新---------------------------------------------------------

除了上述问题,null值在逻辑统计方面也带来一些麻烦。楼主在使用时,还遇到了如下问题。

问题描述:有条件A、B、C,想统计全部满足任意不满足其中一种情况的下的数据量。

原始代码如下:

SELECT
   COUNT(1) AS all_user
,  SUM(CASE WHEN A AND B AND C THEN 1 ELSE 0 END) AS ok_user
,  SUM(CASE WHEN A AND B AND C THEN 0 ELSE 1 END) AS case_user
,  SUM(CASE WHEN !A THEN 1 ELSE 0 END) AS not_A
,  SUM(CASE WHEN !B THEN 1 ELSE 0 END) AS not_B
,  SUM(CASE WHEN !C THEN 1 ELSE 0 END) AS not_C
FROM tb
按理说应该是not_A+not_B+not_C的值不小于case_user才对,
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值