[Hive] if返回null和0的区别

  • count(if(pv>=1000000,1,0))
  • count(if(pv>=1000000,1,null))

区别

count(if(pv>=1000000,1,0))count(if(pv>=1000000,1,null)) 之间的区别在于对于不满足条件的情况下的处理方式。

  • count(if(pv>=1000000,1,0)):这个表达式中,如果 pv 的值大于等于 1000000,那么返回 1,否则返回 0。count() 函数会统计返回值为非空(非零)的次数。因此,这个表达式将计算满足条件 pv>=1000000 的记录数,并将不满足条件的记录视为 0,也会进行计数。

  • count(if(pv>=1000000,1,null)):这个表达式中,如果 pv 的值大于等于 1000000,那么返回 1,否则返回 null。count() 函数仅统计返回值为非空(非零)的次数,而 null 在计数时会被忽略。因此,这个表达式将只计算满足条件 pv>=1000000 的记录数。

简单来说,区别在于第一个表达式(使用 0)计数了所有记录,包括不满足条件的记录,而第二个表达式(使用 null)只计数满足条件的记录。

  • 如果你希望同时计算满足和不满足条件的记录数,可以使用第一个表达式。

  • 如果你希望统计满足条件的记录数,可以使用第二个表达式;

相关推荐
Bug快跑-11 小时前
云原生微服务环境下分布式事务优化实践——提升系统一致性与高并发处理能力
hadoop
叡鳍1 小时前
Hive---案例7-6 列转行
数据仓库·hive·hadoop
❀͜͡傀儡师4 小时前
docker-compose一键部署Hadoop集群
hadoop·docker·容器
干就完事了1 天前
Hive内置函数
数据仓库·hive·hadoop
布吉岛没有岛_1 天前
Hadoop学习_week1
大数据·hadoop
lijun_xiao20091 天前
Apache Hadoop-学习笔记1
hadoop·学习·apache
q***07141 天前
Spring Boot 从 2.7.x 升级到 3.3注意事项
数据库·hive·spring boot
阿杜杜不是阿木木1 天前
在 Hadoop 生态使用 JuiceFS,并为Hive提供HDFS存储安装指南
hive·hadoop·hdfs
小坏讲微服务2 天前
MaxWell中基本使用原理 完整使用 (第一章)
大数据·数据库·hadoop·sqoop·1024程序员节·maxwell
一只小青团2 天前
Hadoop之HDFS
大数据·hadoop·分布式