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

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

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

相关推荐
ClouderaHadoop12 小时前
CDH 最隐蔽的坑:NTP 时间同步导致的 5 类故障
hadoop·hbase·kerberos·cloudera·cdh
Gent_倪13 小时前
Hadoop生态组件介绍
大数据·hadoop
地球资源数据云14 小时前
1900-2023年中国物种分布点位矢量数据集
大数据·数据结构·数据库·数据仓库·人工智能
YaBingSec15 小时前
玄机网络安全靶场:Hadoop YARN ResourceManager 未授权 RCE WP
大数据·数据库·hadoop·redis·笔记·分布式·web安全
Leo.yuan15 小时前
数据仓库是什么?数据仓库和大数据平台、数据湖、数据中台、湖仓一体有什么区别?
大数据·数据仓库·spark
哥本哈士奇1 天前
数据仓库笔记 第六篇:PSA 层 SCD2 处理方式
数据仓库
曹牧2 天前
Java Web 开发:servlet-mapping‌
java·数据仓库·hive·hadoop
juniperhan2 天前
Flink 系列第20篇:Flink SQL 语法全解:从 DDL 到 DML,窗口、聚合、列转行一网打尽
大数据·数据仓库·分布式·sql·flink
菜鸟小码3 天前
HDFS 数据块(Block)机制深度解析:从原理到实战
大数据·hadoop·hdfs
早睡早起早日毕业3 天前
大数据管理与应用系列丛书《大数据平台架构》之第4章 Hadoop 分布式文件系统 (HDFS)
大数据·hadoop·架构