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

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

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

相关推荐
小哥哥咯6 分钟前
数据仓库维度建模思维导图—— 基于《The Data Warehouse Toolkit, 3rd Edition》(第三版修订版)
大数据·数据仓库
forever_ai8 分钟前
数据仓库ods层文档模版
数据仓库
升职佳兴2 小时前
Hadoop 三节点集群环境变量工程化:从 /etc/profile 迁移到 /etc/profile.d/ 全过程记录
大数据·hadoop·分布式
IT从业者张某某2 小时前
Docker部署Hadoop-05-配置Docker容器的命名卷和挂载卷
hadoop·docker·容器
网络工程小王10 小时前
【大数据技术详解】——HIVE技术(学习笔记)
大数据·hive·hadoop
泰克教育官方账号11 小时前
泰涨知识 | 【编程操作详解】Spark读写Hive
大数据·hive·spark
冬至喵喵11 小时前
什么是数据仓库?
大数据·数据仓库·spark
瓦中空花12 小时前
如何基于现有平台处理hadoop挂了的情况?
大数据·hadoop·分布式
Thomas.Sir12 小时前
Hadoop YARN:大数据集群的“操作系统”
大数据·hadoop·分布式·yarn
IT从业者张某某12 小时前
Docker部署Hadoop-02-Docker常见操作
hadoop·docker·容器