[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)只计数满足条件的记录。

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

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

相关推荐
知识分享小能手16 小时前
Hadoop学习教程,从入门到精通, MapReduce分布式计算框架 — 完整知识点与代码案例(4)
hadoop·学习·mapreduce
白日与明月18 小时前
Hive子查询中的ORDER BY陷阱:为什么排序“消失”了?
数据仓库·hive·hadoop
段一凡-华北理工大学19 小时前
工业领域的Hadoop架构学习~系列文章24:adoop工业应用总结与展望 - 技术路线图与最佳实践
大数据·人工智能·hadoop·分布式·学习·架构·高炉炼铁
段一凡-华北理工大学20 小时前
工业领域的Hadoop架构学习~系列文章23:物流行业Hadoop应用实践 - 智能物流的数字化引擎
大数据·人工智能·hadoop·分布式·学习·架构·高炉炼铁
奇点爆破XC2 天前
Hadoop大数据生态(Ambari管理)组件服务详解
大数据·hadoop·ambari
isNotNullX2 天前
企业数据中台建设,ETL工具选错了会踩哪些坑?
数据仓库·etl·原型模式
SelectDB技术团队2 天前
预约发布会|核心产品力首发,如何构建面向 Agent 时代的企业级数据引擎
数据库·数据仓库·人工智能·数据分析·可观测·apache doris·selectdb
段一凡-华北理工大学2 天前
工业领域的Hadoop架构学习~系列文章22:Hadoop生态展望 - 面向未来的技术演进
大数据·人工智能·hadoop·分布式·学习·架构·高炉炼铁
Nefu_lyh2 天前
【Hive】六、Hive 运算逻辑:数学 / 逻辑 / 条件 / 日期 / 字符串函数
数据仓库·hive·hadoop
ChaITSimpleLove2 天前
Etl.Net 2.2.0 项目深度分析
数据仓库·.net·etl·大数据处理·数据管道·数据处理引擎