searchusermenu
  • 发布文章
  • 消息中心
点赞
收藏
评论
分享
原创

HiveSQL内置函数速查表

2023-07-27 06:33:48
7
0

关系运算符

名称

语法

描述

=

A=B

等值比较:如果表达式A与表达式B相等,则为TRUE; 否则为FALSE

<>

A <> B

不等值比较:如果表达式A为NULL,或者表达式B为NULL,返回NULL;如果表达式A与表达式B不相等,则 为TRUE;否则为FALSE

<

A < B

小于比较:如果表达式A为NULL,或者表达式B为NULL,返回NULL;如果表达式A小于表达式B,则为 TRUE;否则为FALSE

<=

A <= B

小于等于比较:如果表达式A为NULL,或者表达式B为 NULL,返回NULL;如果表达式A小于或者等于表达式 B,则为TRUE;否则为FALSE

>

A > B

大于比较:如果表达式A为NULL,或者表达式B为NULL,返回NULL;如果表达式A大于表达式B,则为 TRUE;否则为FALSE

>=

A >= B

大于等于比较:如果表达式A为NULL,或者表达式B为 NULL,返回NULL;如果表达式A大于或者等于表达式 B,则为TRUE;否则为FALSE

IS NULL

A IS NULL

空值判断: 如果表达式A的值为NULL,则为TRUE;否则 为FALSE

IS NOT NULL

A IS NOT NULL

非空判断:如果表达式A的值为NULL,则为FALSE;否 则为TRUE

LIKE

A LIKE B

LIKE比较:如果字符串A或者字符串B为NULL,则返回 NULL;如果字符串A符合表达式B 的正则语法,则为   TRUE;否则为FALSE

RLIKE

A RLIKE B

RLIKE比较如果字符串A或者字符串B为NULL,则返回 NULL;如果字符串A符合JAVA正则表达式B的正则语  法,则为TRUE;否则为FALSE。

 

REGEXP

A REGEXP B

功能与RLIKE相同

数学运算符

 

名称

语法

描述

+

A + B

相加:返回A与B相加的结果

-

A - B

相减:返回A与B相减的结果

*

A * B

相乘:返回A与B相乘的结果

/

A / B

相除:返回A除以B的结果。结果的数值类型为double

%

A % B

取余:返回A除以B的余数

&

A & B

位与操作:返回A和B按位进行与操作的结果

|

A | B

位或操作: 返回A和B按位进行或操作的结果

^

A ^ B

位异或操作: 返回A和B按位进行异或操作的结果

~

A ~ B

位取反操作: 返回A按位取反操作的结果

逻辑运算符

 

名称

语法

描述

 

 

AND

A

AND

B

 

逻辑与操作:如果A和B均为TRUE,则为TRUE;否则为 FALSE。如果A为NULL或B为NULL,则为NULL

 

 

OR

A

OR

B

 

逻辑或操作:如果A为TRUE,或者B为TRUE,或者A和B均为 TRUE,则为TRUE;否则为FALSE

 

NOT

NOT

A

逻辑非操作:如果A为FALSE,或者A为NULL,则为TRUE;否 则为FALSE

 

 

 

数值计算

 

名称

语法

描述

round

round(double a)

取整函数:返回double类型的整数值部分 (遵 循四舍五入)

floor

floor(double a)

向下取整函数:返回等于或者小于该double变 量的最大的整数

ceil

ceil(double a)

向上取整函数:返回等于或者大于该double变 量的最小的整数

rand

rand()

取随机数函数:返回一个0到1范围内的随机 Double数值

exp

exp(double a)

自然指数函数:返回自然对数e的a次方

log10

log10(double a)

以10为底对数函数:返回以10为底的a的对数

log2

log2(double a)

以2为底对数函数:返回以2为底的a的对数

 

log

log(double

base, double a)

对数函数:返回以base为底的a的对数

 

pow

pow(double a,

double p)

 

幂运算函数:返回a的p次幂

 

power

power(double a, double p)

 

幂运算函数:返回a的p次幂,与pow功能相同

sqrt

sqrt(double a)

开平方函数:返回a的平方根

bin

bin(BIGINTa)

二进制函数:返回a的二进制代码表示

 

hex

 

hex(BIGINTa)

十六进制函数:如果变量是int类型,那么返回a 的十六进制表示;如果变量是string类型,则返 回该字符串的十六进制表示

 

unhex

 

unhex(string a)

反转十六进制函数:返回该十六进制字符串所代 码的字符串

 

 

名称

语法

描述

 

 

 

conv

conv(BIGINT

num, int

from_base, int to_base)

 

进制转换函数:将数值num从from_base进制转 化到to_base进制

abs

abs(double a)

abs(inta)

 

绝对值函数:返回数值a的绝对值

 

pmod

pmod(int a, int b)

正取余函数:返回正的a除以b的余数

sin

sin(double a)

正弦函数:返回a的正弦值

asin

asin(double a)

反正弦函数:返回a的反正弦值

cos

cos(double a)

余弦函数:返回a的余弦值

acos

acos(double a)

反余弦函数:返回a的反余弦值

 

 

 

日期函数

 

名称

语法

描述

 

 

from_unixtime

from_unixtime(bigint unixtime[, string

format])

UNIX时间戳转日期函数:转化 UNIX时间戳(从1970-01-01

00:00:00 UTC到指定时间的秒 数)到当前时区的时间格式

unix_timestamp

unix_timestamp()

获取当前UNIX时间戳函数:获 得当前时区的UNIX时间戳

 

 

unix_timestamp

 

unix_timestamp(string date)

日期转UNIX时间戳函数:转换 格式为"yyyy-MM-dd

HH:mm:ss"的日期到UNIX时间 戳,如果转化失败,则返回0。

 

 

unix_timestamp

 

unix_timestamp(string date, string pattern)

指定格式日期转UNIX时间戳函 数:转换pattern格式的日期到 UNIX时间戳。如果转化失败,

则返回0。

to_date

to_date(string

timestamp)

日期时间转日期函数:返回日 期时间字段中的日期部分。

 

year

 

year(string date)

日期转年函数:返回日期中的 年。

 

month

 

month (string date)

日期转月函数:返回日期中的 月份。

 

day

 

day(string date)

日期转日函数:返回日期中的

天。

 

hour

 

hour(string date)

日期转小时函数:返回日期中 的小时。

 

minute

 

minute(string date)

日期转分钟函数:返回日期中 的分钟。

 

second

 

second(string date)

日期转秒函数:返回日期中的 秒。

 

 

名称

语法

描述

weekofyear

weekofyear (string

date)

日期转周函数:返回日期在当 前的周数。

 

datediff

datediff(string

enddate, string

startdate)

 

日期比较函数:返回结束日期 减去开始日期的天数。

 

date_add

 

date_add(string

startdate, int days)

日期增加函数:返回开始日期 startdate增加days天后的日   期。

 

date_sub

 

date_sub (string

startdate, int days)

日期减少函数:返回开始日期 startdate减少days天后的日   期。

 

 

 

条件函数

 

名称

语法

描述

 

 

if

if(boolean

testCondition, T

valueTrue, T

valueFalseOrNull)

 

If函数:当条件testCondition为

TRUE时,返回valueTrue;否则返

回valueFalseOrNull

 

 

COALESCE

 

COALESCE(Tv1, T v2, …)

非空查找函数:   返回参数中的第一 个非空值;如果所有值都为NULL, 那么返回NULL

 

 

CASE

CASE a WHEN b THEN c [WHEN d THEN e]*

[ELSE f] END

条件判断函数:如果a等于b,那么 返回c ;如果a等于d,那么返回e; 否则返回f

 

 

CASE

CASE WHEN a THEN b [WHEN c THEN d]*

[ELSE e] END

条件判断函数:如果a为TRUE,则返 回b;如果c为TRUE,则返回d;否 则返回e

 

 

 

字符串函数

 

名称

语法

描述

length

length(string A)

字符串长度函数:返回字符串A 的长度

 

reverse

reverse(string A)

字符串反转函数:返回字符串A 的反转结果

 

 

concat

concat(string A, string B…)

字符串连接函数:返回输入字符 串连接后的结果,支持任意个输 入字符串

 

 

concat_ws

concat_ws(string SEP, string A, string B…)

带分隔符字符串连接函数:返回 输入字符串连接后的结果,  SEP  表示各个字符串间的分隔符

substr

substr(string A, int

start)

字符串截取函数:返回字符串A 从start位置到结尾的字符串

 

substring

substring(string A, int start)

字符串截取函数:返回字符串A 从start位置到结尾的字符串

 

upper

 

upper(string A)

字符串转大写函数:返回字符串 A的大写格式

 

ucase

 

ucase(string A)

字符串转大写函数:返回字符串 A的大写格式

 

lower

 

lower(string A)

字符串转小写函数:返回字符串 A的小写格式

 

lcase

 

lcase (string A)

字符串转小写函数:返回字符串 A的小写格式

 

trim

 

trim(string A)

去空格函数:去除字符串两边的 空格

 

ltrim

 

ltrim(string A)

左边去空格函数:去除字符串左 边的空格

 

 

名称

语法

描述

rtrim

rtrim(string A)

右边去空格函数:去除字符串右 边的空格

 

regexp_replace

regexp_replace(string A, string B, string C)

正则表达式替换函数:将字符串 A中的符合java正则表达式B的部 分替换为C

 

 

 

regexp_extract

regexp_extract(string subject, string

pattern, int index)

正则表达式解析函数:将字符串 subject按照pattern正则表达式 的规则拆分,返回index指定的  字符

 

 

 

parse_url

parse_url(string

urlString, string

partToExtract [, string keyToExtract])

URL解析函数:返回URL中指定  的部分。  partToExtract的有效值

为: HOST, PATH, QUERY, REF, PROTOCOL, AUTHORITY, FILE, and USERINFO

 

 

get_json_object

get_json_object(string json_string, string

path)

json解析函数:解析json的字符 串json_string,返回path指定的   内容。如果输入的json字符串无 效,那么返回NULL

 

space

 

space(intn)

空格字符串函数:返回长度为n 的字符串

 

repeat

repeat(string str, int n)

重复字符串函数:返回重复n次 后的str字符串

 

ascii

 

ascii(stringstr)

首字符ascii函数:返回字符串str 第一个字符的ascii码

 

lpad

lpad(string str, int len, string pad)

左补足函数:将str进行用pad进 行左补足到len位

 

rpad

rpad(string str, int

len, string pad)

右补足函数:将str进行用pad进 行右补足到len位

 

 

名称

语法

描述

 

split

split(string str, string pat)

分割字符串函数:按照pat字符   串分割str,会返回分割后的字符 串数组

 

 

find_in_set

 

find_in_set(string str, stringstrList)

集合查找函数:返回str在strlist  第一次出现的位置,  strlist是用  逗号分割的字符串。如果没有找 该str字符,则返回0

 

 

 

聚合函数

 

名称

语法

描述

 

 

 

 

 

 

 

 

count

 

 

 

 

 

 

count(*), count(expr),

count(DISTINCT expr[,

expr_.])

个数统计函数:

count(*)统计检索出的 行的个数,包括NULL   值的行;  count(expr)   返回指定字段的非空值 的个数;

count(DISTINCT

expr[, expr_.])返回指   定字段的不同的非空值 的个数

 

 

 

 

 

sum

 

 

 

sum(col), sum(DISTINCT col)

总和统计函数:

sum(col)统计结果集中 col的相加的结果;

sum(DISTINCT col)统 计结果中col不同值相

加的结果

 

 

 

 

 

avg

 

 

 

 

avg(col), avg(DISTINCT col)

平均值统计函数:

avg(col)统计结果集中 col的平均值;

avg(DISTINCT col)统 计结果中col不同值相 加的平均值

 

min

 

min(col)

最小值统计函数:统计 结果集中col字段的最   小值

 

 

max

 

max(col)

最大值统计函数:统计 结果集中col字段的最   大值

 

 

名称

语法

描述

 

 

 

var_pop

 

 

var_pop(col)

非空集合总体变量函  数:统计结果集中col 非空集合的总体变量  (忽略null)

 

 

 

var_samp

 

 

var_samp (col)

非空集合样本变量函  数:统计结果集中col 非空集合的样本变量  (忽略null)

 

 

 

 

stddev_pop

 

 

 

 

stddev_pop(col)

总体标准偏离函数:该 函数计算总体标准偏

离,并返回总体变量的 平方根,其返回值与

VAR_POP函数的平方 根相同

 

stddev_samp

 

stddev_samp (col)

样本标准偏离函数:该 函数计算样本标准偏离

 

 

 

 

percentile

 

 

 

 

percentile(BIGINT col, p)

中位数函数:求准确的 第pth个百分位数,  p    必须介于0和1之间,

但是col字段目前只支   持整数,不支持浮点数 类型

 

 

名称

语法

描述

 

 

 

 

 

 

 

 

 

 

percentile_approx

 

 

 

 

 

 

 

 

 

percentile_approx(DOUBLE col, p [, B])

近似中位数函数:求近 似的第pth个百分位

数, p必须介于0和1之

间,返回类型为

double,但是col字段  支持浮点类型。参数B  控制内存消耗的近似精 度, B越大,结果的准  确度越高。默认为

10,000。当col字段中 的distinct值的个数小  于B时,结果为准确的 百分位数

 

histogram_numeric

 

histogram_numeric(col, b)

直方图:以b为基准计 算col的直方图信息

 

 

 

复合类型构建函数

 

名称

语法

描述

 

map

map (key1, value1, key2, value2, …)

Map类型构建:根据输入的key和value 对构建map类型

 

struct

struct(val1, val2, val3, …)

Struct类型构建:根据输入的参数构建 结构体struct类型

 

array

 

array(val1, val2, …)

Array类型构建:根据输入的参数构建数 组array类型

 

 

 

复合类型操作函数

 

名称

语法

描述

 

map

M[key]

map类型访问:返回map类型M中, key值为指定值的 value值

struct

S.x

struct类型访问:返回结构体S中的x字段

array

A[n]

array类型访问:返回数组A中的第n个变量值

 

 

 

高级函数

 

名称

语法

描述

 

 

explode

 

 

 

explode(Array/Map)

将array或者map中每个元素单独生成一 行,就是内置表生成函数(UDTF),

UDTF将为每个输入行生成零个或多个输出 行。

 

 

lateral

view

lateral view

udtf(expression)

tableAlias as

columnAlias

(,columnAlias)*

lateral view其实就是用来和想类似

explode这种UDTF函数联用的,  lateral

view会将UDTF生成的结果放到一个虚拟表 中,然后这个虚拟表会和输入行进行join    来达到连接UDTF外的select字段的目的。

 

reflect

reflect(class,method [,arg1 [,arg2..]])

reflect函数可以支持在sql中调用java中的 自带函数,秒杀一切udf函数

 

 

 

窗口函数和分析函数

 

名称

语法

描述

 

 

OVER

 

 

OVER()

指定分析函数工作的数据窗口大小, 这个数据窗口大小可能会随着行的变 而变化

 

CURRENT ROW

CURRENT

ROW()

 

表示当前行

PRECEDING

n PRECEDING

表示往前n行数据

FOLLOWING

n FOLLOWING

表示往后n行数据

UNBOUNDED

UNBOUNDED

表示起点

UNBOUNDED

PRECEDING

UNBOUNDED

PRECEDING

 

表示从前面的起点

UNBOUNDED

FOLLOWING

UNBOUNDED

FOLLOWING

 

表示到后面的终点

LAG

LAG(col,n)

表示往前第n行数据

LEAD

LEAD(col,n)

表示往后第n行数据

 

RANK()

 

RANK()

表示返回数据项在分组中的排名,排 名相等会在名次中留下空位

 

DENSE_RANK()

 

DENSE_RANK()

表示返回数据项在分组中的排名,排 名相等会在名次中不会留下空位

 

 

 

NTILE()

 

 

NTILE(int n)

把有序分区中的行分发到指定数据的 组中,各个组有编号,编号从1开

始,对于每一行, NTILE返回此行所 属的组的编号

ROW_NUMBER()

ROW_NUMBER()

为每条记录返回一个数字

0条评论
0 / 1000
李****慧
2文章数
0粉丝数
李****慧
2 文章 | 0 粉丝
李****慧
2文章数
0粉丝数
李****慧
2 文章 | 0 粉丝
原创

HiveSQL内置函数速查表

2023-07-27 06:33:48
7
0

关系运算符

名称

语法

描述

=

A=B

等值比较:如果表达式A与表达式B相等,则为TRUE; 否则为FALSE

<>

A <> B

不等值比较:如果表达式A为NULL,或者表达式B为NULL,返回NULL;如果表达式A与表达式B不相等,则 为TRUE;否则为FALSE

<

A < B

小于比较:如果表达式A为NULL,或者表达式B为NULL,返回NULL;如果表达式A小于表达式B,则为 TRUE;否则为FALSE

<=

A <= B

小于等于比较:如果表达式A为NULL,或者表达式B为 NULL,返回NULL;如果表达式A小于或者等于表达式 B,则为TRUE;否则为FALSE

>

A > B

大于比较:如果表达式A为NULL,或者表达式B为NULL,返回NULL;如果表达式A大于表达式B,则为 TRUE;否则为FALSE

>=

A >= B

大于等于比较:如果表达式A为NULL,或者表达式B为 NULL,返回NULL;如果表达式A大于或者等于表达式 B,则为TRUE;否则为FALSE

IS NULL

A IS NULL

空值判断: 如果表达式A的值为NULL,则为TRUE;否则 为FALSE

IS NOT NULL

A IS NOT NULL

非空判断:如果表达式A的值为NULL,则为FALSE;否 则为TRUE

LIKE

A LIKE B

LIKE比较:如果字符串A或者字符串B为NULL,则返回 NULL;如果字符串A符合表达式B 的正则语法,则为   TRUE;否则为FALSE

RLIKE

A RLIKE B

RLIKE比较如果字符串A或者字符串B为NULL,则返回 NULL;如果字符串A符合JAVA正则表达式B的正则语  法,则为TRUE;否则为FALSE。

 

REGEXP

A REGEXP B

功能与RLIKE相同

数学运算符

 

名称

语法

描述

+

A + B

相加:返回A与B相加的结果

-

A - B

相减:返回A与B相减的结果

*

A * B

相乘:返回A与B相乘的结果

/

A / B

相除:返回A除以B的结果。结果的数值类型为double

%

A % B

取余:返回A除以B的余数

&

A & B

位与操作:返回A和B按位进行与操作的结果

|

A | B

位或操作: 返回A和B按位进行或操作的结果

^

A ^ B

位异或操作: 返回A和B按位进行异或操作的结果

~

A ~ B

位取反操作: 返回A按位取反操作的结果

逻辑运算符

 

名称

语法

描述

 

 

AND

A

AND

B

 

逻辑与操作:如果A和B均为TRUE,则为TRUE;否则为 FALSE。如果A为NULL或B为NULL,则为NULL

 

 

OR

A

OR

B

 

逻辑或操作:如果A为TRUE,或者B为TRUE,或者A和B均为 TRUE,则为TRUE;否则为FALSE

 

NOT

NOT

A

逻辑非操作:如果A为FALSE,或者A为NULL,则为TRUE;否 则为FALSE

 

 

 

数值计算

 

名称

语法

描述

round

round(double a)

取整函数:返回double类型的整数值部分 (遵 循四舍五入)

floor

floor(double a)

向下取整函数:返回等于或者小于该double变 量的最大的整数

ceil

ceil(double a)

向上取整函数:返回等于或者大于该double变 量的最小的整数

rand

rand()

取随机数函数:返回一个0到1范围内的随机 Double数值

exp

exp(double a)

自然指数函数:返回自然对数e的a次方

log10

log10(double a)

以10为底对数函数:返回以10为底的a的对数

log2

log2(double a)

以2为底对数函数:返回以2为底的a的对数

 

log

log(double

base, double a)

对数函数:返回以base为底的a的对数

 

pow

pow(double a,

double p)

 

幂运算函数:返回a的p次幂

 

power

power(double a, double p)

 

幂运算函数:返回a的p次幂,与pow功能相同

sqrt

sqrt(double a)

开平方函数:返回a的平方根

bin

bin(BIGINTa)

二进制函数:返回a的二进制代码表示

 

hex

 

hex(BIGINTa)

十六进制函数:如果变量是int类型,那么返回a 的十六进制表示;如果变量是string类型,则返 回该字符串的十六进制表示

 

unhex

 

unhex(string a)

反转十六进制函数:返回该十六进制字符串所代 码的字符串

 

 

名称

语法

描述

 

 

 

conv

conv(BIGINT

num, int

from_base, int to_base)

 

进制转换函数:将数值num从from_base进制转 化到to_base进制

abs

abs(double a)

abs(inta)

 

绝对值函数:返回数值a的绝对值

 

pmod

pmod(int a, int b)

正取余函数:返回正的a除以b的余数

sin

sin(double a)

正弦函数:返回a的正弦值

asin

asin(double a)

反正弦函数:返回a的反正弦值

cos

cos(double a)

余弦函数:返回a的余弦值

acos

acos(double a)

反余弦函数:返回a的反余弦值

 

 

 

日期函数

 

名称

语法

描述

 

 

from_unixtime

from_unixtime(bigint unixtime[, string

format])

UNIX时间戳转日期函数:转化 UNIX时间戳(从1970-01-01

00:00:00 UTC到指定时间的秒 数)到当前时区的时间格式

unix_timestamp

unix_timestamp()

获取当前UNIX时间戳函数:获 得当前时区的UNIX时间戳

 

 

unix_timestamp

 

unix_timestamp(string date)

日期转UNIX时间戳函数:转换 格式为"yyyy-MM-dd

HH:mm:ss"的日期到UNIX时间 戳,如果转化失败,则返回0。

 

 

unix_timestamp

 

unix_timestamp(string date, string pattern)

指定格式日期转UNIX时间戳函 数:转换pattern格式的日期到 UNIX时间戳。如果转化失败,

则返回0。

to_date

to_date(string

timestamp)

日期时间转日期函数:返回日 期时间字段中的日期部分。

 

year

 

year(string date)

日期转年函数:返回日期中的 年。

 

month

 

month (string date)

日期转月函数:返回日期中的 月份。

 

day

 

day(string date)

日期转日函数:返回日期中的

天。

 

hour

 

hour(string date)

日期转小时函数:返回日期中 的小时。

 

minute

 

minute(string date)

日期转分钟函数:返回日期中 的分钟。

 

second

 

second(string date)

日期转秒函数:返回日期中的 秒。

 

 

名称

语法

描述

weekofyear

weekofyear (string

date)

日期转周函数:返回日期在当 前的周数。

 

datediff

datediff(string

enddate, string

startdate)

 

日期比较函数:返回结束日期 减去开始日期的天数。

 

date_add

 

date_add(string

startdate, int days)

日期增加函数:返回开始日期 startdate增加days天后的日   期。

 

date_sub

 

date_sub (string

startdate, int days)

日期减少函数:返回开始日期 startdate减少days天后的日   期。

 

 

 

条件函数

 

名称

语法

描述

 

 

if

if(boolean

testCondition, T

valueTrue, T

valueFalseOrNull)

 

If函数:当条件testCondition为

TRUE时,返回valueTrue;否则返

回valueFalseOrNull

 

 

COALESCE

 

COALESCE(Tv1, T v2, …)

非空查找函数:   返回参数中的第一 个非空值;如果所有值都为NULL, 那么返回NULL

 

 

CASE

CASE a WHEN b THEN c [WHEN d THEN e]*

[ELSE f] END

条件判断函数:如果a等于b,那么 返回c ;如果a等于d,那么返回e; 否则返回f

 

 

CASE

CASE WHEN a THEN b [WHEN c THEN d]*

[ELSE e] END

条件判断函数:如果a为TRUE,则返 回b;如果c为TRUE,则返回d;否 则返回e

 

 

 

字符串函数

 

名称

语法

描述

length

length(string A)

字符串长度函数:返回字符串A 的长度

 

reverse

reverse(string A)

字符串反转函数:返回字符串A 的反转结果

 

 

concat

concat(string A, string B…)

字符串连接函数:返回输入字符 串连接后的结果,支持任意个输 入字符串

 

 

concat_ws

concat_ws(string SEP, string A, string B…)

带分隔符字符串连接函数:返回 输入字符串连接后的结果,  SEP  表示各个字符串间的分隔符

substr

substr(string A, int

start)

字符串截取函数:返回字符串A 从start位置到结尾的字符串

 

substring

substring(string A, int start)

字符串截取函数:返回字符串A 从start位置到结尾的字符串

 

upper

 

upper(string A)

字符串转大写函数:返回字符串 A的大写格式

 

ucase

 

ucase(string A)

字符串转大写函数:返回字符串 A的大写格式

 

lower

 

lower(string A)

字符串转小写函数:返回字符串 A的小写格式

 

lcase

 

lcase (string A)

字符串转小写函数:返回字符串 A的小写格式

 

trim

 

trim(string A)

去空格函数:去除字符串两边的 空格

 

ltrim

 

ltrim(string A)

左边去空格函数:去除字符串左 边的空格

 

 

名称

语法

描述

rtrim

rtrim(string A)

右边去空格函数:去除字符串右 边的空格

 

regexp_replace

regexp_replace(string A, string B, string C)

正则表达式替换函数:将字符串 A中的符合java正则表达式B的部 分替换为C

 

 

 

regexp_extract

regexp_extract(string subject, string

pattern, int index)

正则表达式解析函数:将字符串 subject按照pattern正则表达式 的规则拆分,返回index指定的  字符

 

 

 

parse_url

parse_url(string

urlString, string

partToExtract [, string keyToExtract])

URL解析函数:返回URL中指定  的部分。  partToExtract的有效值

为: HOST, PATH, QUERY, REF, PROTOCOL, AUTHORITY, FILE, and USERINFO

 

 

get_json_object

get_json_object(string json_string, string

path)

json解析函数:解析json的字符 串json_string,返回path指定的   内容。如果输入的json字符串无 效,那么返回NULL

 

space

 

space(intn)

空格字符串函数:返回长度为n 的字符串

 

repeat

repeat(string str, int n)

重复字符串函数:返回重复n次 后的str字符串

 

ascii

 

ascii(stringstr)

首字符ascii函数:返回字符串str 第一个字符的ascii码

 

lpad

lpad(string str, int len, string pad)

左补足函数:将str进行用pad进 行左补足到len位

 

rpad

rpad(string str, int

len, string pad)

右补足函数:将str进行用pad进 行右补足到len位

 

 

名称

语法

描述

 

split

split(string str, string pat)

分割字符串函数:按照pat字符   串分割str,会返回分割后的字符 串数组

 

 

find_in_set

 

find_in_set(string str, stringstrList)

集合查找函数:返回str在strlist  第一次出现的位置,  strlist是用  逗号分割的字符串。如果没有找 该str字符,则返回0

 

 

 

聚合函数

 

名称

语法

描述

 

 

 

 

 

 

 

 

count

 

 

 

 

 

 

count(*), count(expr),

count(DISTINCT expr[,

expr_.])

个数统计函数:

count(*)统计检索出的 行的个数,包括NULL   值的行;  count(expr)   返回指定字段的非空值 的个数;

count(DISTINCT

expr[, expr_.])返回指   定字段的不同的非空值 的个数

 

 

 

 

 

sum

 

 

 

sum(col), sum(DISTINCT col)

总和统计函数:

sum(col)统计结果集中 col的相加的结果;

sum(DISTINCT col)统 计结果中col不同值相

加的结果

 

 

 

 

 

avg

 

 

 

 

avg(col), avg(DISTINCT col)

平均值统计函数:

avg(col)统计结果集中 col的平均值;

avg(DISTINCT col)统 计结果中col不同值相 加的平均值

 

min

 

min(col)

最小值统计函数:统计 结果集中col字段的最   小值

 

 

max

 

max(col)

最大值统计函数:统计 结果集中col字段的最   大值

 

 

名称

语法

描述

 

 

 

var_pop

 

 

var_pop(col)

非空集合总体变量函  数:统计结果集中col 非空集合的总体变量  (忽略null)

 

 

 

var_samp

 

 

var_samp (col)

非空集合样本变量函  数:统计结果集中col 非空集合的样本变量  (忽略null)

 

 

 

 

stddev_pop

 

 

 

 

stddev_pop(col)

总体标准偏离函数:该 函数计算总体标准偏

离,并返回总体变量的 平方根,其返回值与

VAR_POP函数的平方 根相同

 

stddev_samp

 

stddev_samp (col)

样本标准偏离函数:该 函数计算样本标准偏离

 

 

 

 

percentile

 

 

 

 

percentile(BIGINT col, p)

中位数函数:求准确的 第pth个百分位数,  p    必须介于0和1之间,

但是col字段目前只支   持整数,不支持浮点数 类型

 

 

名称

语法

描述

 

 

 

 

 

 

 

 

 

 

percentile_approx

 

 

 

 

 

 

 

 

 

percentile_approx(DOUBLE col, p [, B])

近似中位数函数:求近 似的第pth个百分位

数, p必须介于0和1之

间,返回类型为

double,但是col字段  支持浮点类型。参数B  控制内存消耗的近似精 度, B越大,结果的准  确度越高。默认为

10,000。当col字段中 的distinct值的个数小  于B时,结果为准确的 百分位数

 

histogram_numeric

 

histogram_numeric(col, b)

直方图:以b为基准计 算col的直方图信息

 

 

 

复合类型构建函数

 

名称

语法

描述

 

map

map (key1, value1, key2, value2, …)

Map类型构建:根据输入的key和value 对构建map类型

 

struct

struct(val1, val2, val3, …)

Struct类型构建:根据输入的参数构建 结构体struct类型

 

array

 

array(val1, val2, …)

Array类型构建:根据输入的参数构建数 组array类型

 

 

 

复合类型操作函数

 

名称

语法

描述

 

map

M[key]

map类型访问:返回map类型M中, key值为指定值的 value值

struct

S.x

struct类型访问:返回结构体S中的x字段

array

A[n]

array类型访问:返回数组A中的第n个变量值

 

 

 

高级函数

 

名称

语法

描述

 

 

explode

 

 

 

explode(Array/Map)

将array或者map中每个元素单独生成一 行,就是内置表生成函数(UDTF),

UDTF将为每个输入行生成零个或多个输出 行。

 

 

lateral

view

lateral view

udtf(expression)

tableAlias as

columnAlias

(,columnAlias)*

lateral view其实就是用来和想类似

explode这种UDTF函数联用的,  lateral

view会将UDTF生成的结果放到一个虚拟表 中,然后这个虚拟表会和输入行进行join    来达到连接UDTF外的select字段的目的。

 

reflect

reflect(class,method [,arg1 [,arg2..]])

reflect函数可以支持在sql中调用java中的 自带函数,秒杀一切udf函数

 

 

 

窗口函数和分析函数

 

名称

语法

描述

 

 

OVER

 

 

OVER()

指定分析函数工作的数据窗口大小, 这个数据窗口大小可能会随着行的变 而变化

 

CURRENT ROW

CURRENT

ROW()

 

表示当前行

PRECEDING

n PRECEDING

表示往前n行数据

FOLLOWING

n FOLLOWING

表示往后n行数据

UNBOUNDED

UNBOUNDED

表示起点

UNBOUNDED

PRECEDING

UNBOUNDED

PRECEDING

 

表示从前面的起点

UNBOUNDED

FOLLOWING

UNBOUNDED

FOLLOWING

 

表示到后面的终点

LAG

LAG(col,n)

表示往前第n行数据

LEAD

LEAD(col,n)

表示往后第n行数据

 

RANK()

 

RANK()

表示返回数据项在分组中的排名,排 名相等会在名次中留下空位

 

DENSE_RANK()

 

DENSE_RANK()

表示返回数据项在分组中的排名,排 名相等会在名次中不会留下空位

 

 

 

NTILE()

 

 

NTILE(int n)

把有序分区中的行分发到指定数据的 组中,各个组有编号,编号从1开

始,对于每一行, NTILE返回此行所 属的组的编号

ROW_NUMBER()

ROW_NUMBER()

为每条记录返回一个数字

文章来自个人专栏
学习记录
2 文章 | 1 订阅
0条评论
0 / 1000
请输入你的评论
0
0