hive踩坑记录:count(distinct col1,col2) 遇见某列中有null值,结果不准

count(distinct col1,col2) 遇见某列中中有null值,结果不准

SELECT count(DISTINCT col1,col2)

from

(SELECT 2 as col1,1 as col2

union all

SELECT null as col1,2 as col2

union all

SELECT null as col1,3 as col2

union all

SELECT null as col1,4 as col2

)as tmp

count的结果为1

 

count(distinct col1,col2) 遇见某列中中有null值,结果不准

SELECT count(DISTINCT col1,col2)

from

(SELECT null as col1,1 as col2

union all

SELECT null as col1,2 as col2

union all

SELECT null as col1,3 as col2

union all

SELECT null as col1,4 as col2

)as tmp

count的结果为一

 

 

 

原因:本以为是将所有的null全部归为一行实际上上,实际上某列为null时整个就不算了

解决方案:将null值用个统一字符串替换

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值