Hive SQL 条件函数 IF 是用于处理单个列的判断查询结果,形式为 if(条件表达式, 结果1, 结果2),相当于 java 中的三目运算符,只是 if 后面的表达式类型可以不一样。

语法说明

语法

IF(boolean testCondition, T valueTrue, T valueFalseOrNull)

说明

如果 testCondition 为 true,就返回 valueTrue,否则返回 valueFalseOrNull;其中 valueTrue 和 valueFalseOrNull 为泛型。

常用例子

IF 函数多个条件

假设通过一个 sql 聚合不同时间段的统计数据,就有可能用到 IF 函数,设定表为 stat,其中分区字段为 dt 表示日期,字段 act 分别表示 1 为曝光行为,2 为点击行为,示例如下:

SELECT

item_id AS item_id,

COUNT(IF(act = 1 AND dt >= 20200929 AND dt <= 20201001, 1, NULL)) AS impression_3,

COUNT(IF(act = 2 AND dt >= 20200929 AND dt <= 20201001, 1, NULL)) AS click_3,

IF(COUNT(IF(act = 1 AND dt >= 20200929 AND dt <= 20201001, 1, NULL)) > 0, round(COUNT(IF(act = 2 AND dt >= 20200929 AND dt <= 20201001, 1, NULL)) / COUNT(IF(act = 1 AND dt >= 20200929 AND dt <= 20201001, 1, NULL)), 4), 0) AS ctr_3,

COUNT(IF(act = 1, 1, NULL)) AS impression_30,

COUNT(IF(act = 2, 1, NULL)) AS click_30,

IF(COUNT(IF(act = 1, 1, NULL)) > 0, round(COUNT(IF(act = 2, 1, NULL)) / COUNT(IF(act = 1, 1, NULL)), 4), 0) AS ctr_30,

FROM stat

WHERE dt >= 20200902

AND dt <= 20201001

GROUP BY item_id

如上 SQL 可以看出,一个 SQL 一次性地获取最近 3 天和 30 天的曝光(impression)、点击(click)和点击率(ctr)数据,利用 IF 多个条件划定时间范围。

hive的条件查询语句_Hive SQL 条件函数 IF 详解相关推荐

  1. php函数查询sprintf,PHP之sprintf函数用法详解

    本文实例讲述了PHP中sprintf函数的用法.分享给大家供大家参考.具体用法分析如下: sprintf()函数在php官方是说把字符串格式化输出了,本文就来给各位朋友介绍一下在学习sprintf() ...

  2. 数据库1:数据库、DDL数据库定义语言、DML操作数据库语言、DQL条件查询语句

    数据库 SQL(Structure Query Language)语言是数据库的核心语言. SQL语言共分为四大类:数据查询语言DQL,数据操做语言DML,数据定义语言DDL,数据控制语言DCL. 1 ...

  3. hive的条件查询语句_[一起学Hive]之九-Hive的查询语句SELECT

    关键字:Hive SELECT.ORDER BY.SORT BY.DISTRIBUTE BY.CLUSTER BY.Hive子查询.Hive虚拟列 八.Hive的查询语句SELECT 在所有的数据库系 ...

  4. php中条件查询语句,thinkphp3.2框架中where条件查询用法总结

    本文实例讲述了thinkphp3.2框架中where条件查询用法.分享给大家供大家参考,具体如下: thinkphp3.2 where 条件查询 在连贯操作中条件where的操作有时候自己很晕,所以整 ...

  5. 检索数据_8_查询语句里执行条件判断

    查询语句里执行条件判断 需求描述 需求:查询雇员表emp里的员工名称.工资.工资分类状态.这里的工资分类状态按照以下规则显示:如果工资小于等于2000则显示UNDERPAID(即报酬比较低的),如果工 ...

  6. mysql有个数据用or语句有相同条件_MySql带OR关键字的多条件查询语句

    上篇文章给大家介绍了Mysql带And关键字的多条件查询语句,下面给大家介绍MySql带OR关键字的多条件查询语句,感兴趣的朋友可以一起学习. MySQL带OR关键字的多条件查询,与AND关键字不同, ...

  7. SQLServer 条件查询语句大全

    对于刚开始认识SQLServer数据库的小伙伴们来说添加一些条件查询是比较困难的,我整理了一份常用的条件查询语句供大家参考借鉴 一. 创建数据库 CREATE DATABASE Class ON PR ...

  8. where条件查询语句

    1. where条件查询介绍 使用where条件查询可以对表中的数据进行筛选,条件成立的记录会出现在结果集中. where语句支持的运算符: 比较运算符 逻辑运算符 模糊查询 范围查询 空判断 whe ...

  9. sumif三个条件怎么填_Excel条件求和函数sumif详解及应用

    Excel条件求和函数sumif详解及应用 相对于sum而言,sumif的便捷性有了很大拓展,可以根据指定的条件进行求和.这里对其参数进行介绍并加以实例演示. 1. 参数介绍 sumif(range, ...

最新文章

  1. 拥有AI「变声术」,秒杀了多年苦练的模仿艺能
  2. 使用DPM 2012 Sp1保护SQL server 2012 Sp1
  3. 大话异步与并行(一)
  4. python卸载opencv_20.Windows python,opencv的安装与卸载
  5. 【声学基础】概述——辐射
  6. testng数据驱动_TestNG数据提供者
  7. 数据结构 实验2——表达式求值
  8. 开源中国上几款免费又好用的OA协同办公系统,真心不错!
  9. 眼见不一定为实,电阻、电容和电感的实际等效模型
  10. linux中怎样隐藏文件,Linux下如何隐藏文件
  11. mariadb相关说明
  12. centos7开机无法进入图形界面,出现 sda assuming drive cache write through
  13. win10打印服务器纸规格没有显示,win10系统打印机设置纸张大小的操作方法
  14. iOS集成Cordova开发教程遇到的问题
  15. js 实现在当前页面打开新窗口
  16. CSS类选择器常用命名
  17. jwplayer html插件,jw player(网页媒体播放器插件) v2017 最新版
  18. C语言(二)BMP图像 文本数据保存为图像
  19. 对勾和叉怎么打_word中插入打勾符号和打叉符号方法
  20. function 与 => 的区别

热门文章

  1. kotlinx.android.synthetic返回空对象
  2. Android Studio 和 gradle 修改缓存文件夹路径
  3. vs运行出现无法启动IIS Express服务器
  4. 由“中国回力鞋在欧美走红热销”想到的
  5. ubuntu设置中文输入法
  6. Ubuntu输入法框架
  7. jqGrid 各种参数 详解
  8. Windows无法读取驱动器中的光盘
  9. [ Azure - Security ] Azure的多重身份验证(二):在Azure portal 登陆时候设置MFA/2FA验证
  10. WordPress是如何赚钱的?秘密透露