预计阅读时间:5min
阅读建议:本文总结了工作中「常用的SQL函数」以及「可能踩到的一些坑」,偏知识总结类文章,建议「收藏」,需要的时候拿出来看一看。
00
序言
SQL是数据分析同学日常用到的查询语言,Hive是基于Hadoop的数据仓库工具,Hive提供了SQL的查询功能,可将SQL转化为MapReduce任务来执行。本文汇总了小火龙在工作中常用的Hive SQL函数,以及其中可能涉及到的一些坑,供大家参考学习。函数类型如下图:
本文主要汇总「内置函数」的几种类型,对于「用户自定义函数」的创建,会在后面的文章中进行讲解。
01
数值函数
「数值函数」主要是对int和float数据类型进行的处理。常用函数汇总如下:
避坑点
1、rand(x):相同“种子”多次结果均一致;无“种子”任何一次结果均不一致。
02
字符串函数
「字符串函数」主要是对char数据类型进行的处理。常用函数汇总如下:
03
条件函数
「条件函数」主要是对字段进行判断。常用函数汇总如下:
04
日期函数
「日期函数」主要是对日期进行处理,以及加减操作,在计算留存时经常使用。常用函数汇总如下:
05
关系函数
「关系函数」主要是对字段进行匹配。常用函数汇总如下:
避坑点
1、「NULL」和「空字符串」是不一样的,一般在数据库中表现为,「NULL」显示NULL,而「空字符串」显示为空,在匹配的时候需要注意。
举例:如果拿捏不好字段是哪种类型,并且需要去掉的情况,建议两者一起去掉。A is not null and A !=''
2、 Like、Rlike、Regexp的区别:
- Like:通配符,不是正则。通配符涵盖 % 和 _。
- Rlike:正则表达式,写法与java一样。
- Regexp:基本同Rlike。
06
聚合函数
「聚合函数」多行转一行。常用函数汇总如下:
07
分拆函数
「分拆函数」一行转多行。常用函数汇总如下:
08
窗口函数
「窗口函数」又称OLAP函数(online analytical processing),完成类似聚合函数的计算效果,但是又保持每行的数据,不被聚合到一起。常用函数汇总如下:
避坑点
1、 rank( )over( )、dense_rank( )over( )、row_number( )over( )的区别
2、sum( )over( )函数中有order by 和 无order by的区别
以上就是本期的内容分享,希望可以帮助你理清Hive SQL常用函数。