Hive----条件判断语句

简介: 条件判断语句
  • image.png  条件判断语句 用于为查询字段的值添加判断条件,区别于when!
  • 常用于动态分区
  •  
  • if
  • select
  •     if(condition,true_value,false_value)
  • from tb
  • 例:对男女人数分别进行计算,
  • 计算男的人数时,将性别男标记为数字1,女为数字0
  • 计算女的人数时,将性别女标记为数字1,男为数字0
  • 最终将数字累加
  • select dept_id,
  • sum(if(sex='男',1,0)) [as] malenum,
  • sum(if(sex='女',1,0)) [as] femalenum
  • from emp_sex group by dept_id;
  • -------------------------------------------
  • 统计每个部门男女各多少人
  • 用group  by:
  • select  dept_id,sex,count(*)
  • from  emp_sex group by dept_id,sex;
  •  
  •  
  • =====================================================
  • case when
  • select dept_id,
  • sum(case when sex='男' then 1 else 0  end) [as] malenum,
  • sum(case when sex='女' then 1 else 0  end)  [as] femalenum
  • from emp_sex group by dept_id;
  • ------------------------------------------------------
  • select *,
  •    case
  •         when score >=80 then '优秀'
  •         when score >=60 and score <80 then '及格'
  •         when score >40 and score <60 then '不及格'
  •         else '渣'
  •         (when score <=40 then '渣')
  •    end [as] score_level
  • from stu_score ;
  •  
  •  
  • =====================================================
  • nvl
  • nvl(v1,v2) ,如果v1不为空,取v1,如果为空,取v2
  •  
  • 注Ⅰ:select  nvl(a.id,b.id) from a full join b on a.id=b.id  ;
  • <==> select nvl(b.id,a.id) from a full join b on a.id=b.id ;
  •  
  • 注Ⅱ:select nvl(a.name,b.name) from a full join b on a.id=b.id ;
  • <=/=> select nvl(b.name,a.name) from a full join b on a.id=b.id ;
  •  
  •  
  • =====================================================
  • coalesce
  • coalesce(v1,v2,v3,v4...) 返回第一个非null的值
  • 举例:
  • coalesce(100,null,200,null,120)  --> 100
  • coalesce(null,200,null,120)   --> 200
  • 常用:coalesce(字段)
目录
相关文章
|
SQL Oracle 关系型数据库
hive中将单行拆分成多行总结
hive 中实现拆分字段到多行
8967 0
|
SQL 数据挖掘 数据库
HiveSQL分位数函数percentile()使用详解+实例代码
HiveSQL分位数函数percentile()使用详解+实例代码
5913 0
HiveSQL分位数函数percentile()使用详解+实例代码
|
搜索推荐 算法 Go
对Go的切片进行随机排序
使用math/rand包和sort包来对切片进行随机排序
279 0
基于RuoYi实现多条件分组排序列表
基于RuoYi实现多条件分组排序列表
基于RuoYi实现多条件分组排序列表
|
2月前
|
存储 缓存 API
实现电商物流API的实时追踪功能
在电商时代,实时物流追踪已成为提升用户体验的核心功能。本文详解如何通过物流API实现包裹位置追踪、ETA计算及数据优化,涵盖API集成、后端处理、前端展示与性能调优,助力构建高效可靠的追踪系统,提升用户信任与满意度。
180 0
|
传感器 JavaScript 算法
Higress 全新 Wasm 运行时,性能大幅提升(二)
WAMR 是最早由 Intel 团队开发,在字节码联盟(Bytecode Alliance,面向 Wasm 软件生态的非盈利组织)下的一个广受欢迎的 WebAssembly 运行时开源项目。
245 2
Hive中的in、exists和left semi join
Hive中的in、exists和left semi join
Hive中的in、exists和left semi join
|
Linux 项目管理 开发者
管理工具 Pip
【4月更文挑战第8天】本文详尽介绍了Python包管理工具Pip的使用,包括安装、升级Pip,安装与卸载包,管理依赖关系,查看包信息,使用虚拟环境,自定义配置,源码安装,包的升级与降级,以及Pip的高级功能和生态系统扩展。此外,还提到了Pip的安全性、日志、调试、自动化集成和最佳实践,旨在帮助开发者更有效地管理Python项目。学习本文,读者将全面掌握Pip命令,提升项目管理效率。
|
应用服务中间件 网络安全 数据安全/隐私保护
使用 Nginx 实现 HTTPS 网站设置
HTTPS 其实是有两部分组成:HTTP + SSL/TLS,也就是在 HTTP 的基础上又加了一层处理加密信息的模块。服务端和客户端的信息传递都会通过 TLS 进行加密,所以传输的数据都是加密后的数据。
862 0
使用 Nginx 实现 HTTPS 网站设置
|
分布式计算 并行计算 数据处理