1. 函数列表

涵盖的数据源:presto、impala、hive、spark、greenplum、oracle、postgresql、redshift、sqlserver、tidb、mysql、db2、mongodb、maxcompute

1.1. 数字函数

函数名 描述 参数说明 返回值类型 不支持数据源
abs(N) 绝对值运算。例如:abs(-1),返回数字类型:1 数字类型参数, 可选类型:NUMBER NUMBER
ceil(N) 获取大于等于指定数值的最小整数值 数字类型参数, 可选类型:NUMBER NUMBER
floor(N) 获取小于等于指定数值的最小整数 数字类型参数, 可选类型:NUMBER NUMBER
median(N) 获取指定数值列的中位数 数字类型参数, 可选类型:NUMBER NUMBER impala hive spark
sqlserver tidb mysql
mod(DIVIDEND,DIVISOR) 取模运算,参数可以是小数。例如:mod(12.3, 5),返回数字类型:2.3 1.被除数, 可选类型:NUMBER;2.除数, 可选类型:NUMBER NUMBER
growth_rate(CURRENT,PREVIOUS) 增长率 1.新值, 可选类型:NUMBER;
2.前值, 可选类型:NUMBER
NUMBER
percentile(N,PERCENT) 计算百分位数 1.数字类型参数, 可选类型:NUMBER;
2.内部参数, 可选类型:NUMBER
NUMBER impala hive spark
sqlserver tidb mysql
mongodb maxcompute
power(BASE,EXPONENT) 乘方运算。例如:power(2,3),返回数字类型:8 1.底数, 可选类型:NUMBER;
2.指数, 可选类型:NUMBER
NUMBER
round(N,LITERAL_PRECISION) 四舍五入后指定位数 1.数字类型参数, 可选类型:NUMBER;
2.指定精度, 可选类型:NUMBER
NUMBER
sign(N) 符号函数。例如:sign(x), 若x>0,则返回1;若x=0,则返回0;若x<0,则返回-1 数字类型参数, 可选类型:NUMBER NUMBER
sqrt(N) 平方根运算 数字类型参数, 可选类型:NUMBER NUMBER
cbrt(N) 立方根运算 数字类型参数, 可选类型: NUMBER NUMBER mysql oracle sqlserver
db2 impala tidb
mongodb
acos(N) 返回 N 的反余弦值, 以弧度表示, N 必须是 [-1, 1] 之间的值, 例如: acos(0.5) = 1.0471975511966 数字类型参数, 可选类型: NUMBER NUMBER
asin(N) 返回 N 的反正弦值, 以弧度表示, N 必须是 [-1, 1] 之间的值, 例如: asin(0.5) = 0.523598775598299 数字类型参数, 可选类型: NUMBER NUMBER
atan(N) 返回 N 的反正切值, 以弧度表示, 例如: atan(1) = 0.785398163397448 数字类型参数, 可选类型: NUMBER NUMBER
atan2(ARG1, ARG2) 返回 arg1/arg2 的反正切值, 以弧度表示, 例如: atan2(2, 2) = 0.785398163397448 数字类型参数, 可选类型: NUMBER NUMBER hive
cos(N) 返回 N 的余弦值, N 表示弧度, 例如: cos(pi()/3) = 0.5 数字类型参数, 可选类型: NUMBER NUMBER
cot(N) 返回 N 的余切值, N 表示弧度, N 不能为 0, 例如: cot(pi()/4) = 1 数字类型参数, 可选类型: NUMBER NUMBER
sin(N) 返回 N 的正弦值, N 表示弧度, 例如: sin(pi()/6) = 0.5 数字类型参数, 可选类型: NUMBER NUMBER
tan(N) 返回 N 的正切值, N 表示弧度, 例如: tan(pi()/4) = 1 数字类型参数, 可选类型: NUMBER NUMBER
cosh(N) 返回 N 的双曲余弦值, 例如: cosh(1) = 1.5430806348152437 数字类型参数, 可选类型: NUMBER NUMBER postgres greenplum mysql
sqlserver hive tidb
mongodb redshift
sinh(N) 返回 N 的双曲正弦值, 例如: sinh(1) = 0.8686709614860095 数字类型参数, 可选类型: NUMBER NUMBER postgres greenplum mysql
sqlserver hive tidb
presto mongodb redshift
tanh(N) 返回 N 的双曲正切值, 例如: tanh(1) = 0.7615941559557649 数字类型参数, 可选类型: NUMBER NUMBER postgres greenplum mysql
sqlserver hive tidb
mongodb redshift
degrees(N) 把弧度转为角度, N 表示弧度 数字类型参数, 可选类型: NUMBER NUMBER oracle
radians(N) 把角度转为弧度, N 表示角度 数字类型参数, 可选类型: NUMBER NUMBER oracle
pi() π 常量, 等于 3.14159265358979 NUMBER orace db2
exp(N) e 的 N 次幂, e 为自然对数的底数, exp(1) = 2.171828182845904 数字类型参数, 可选类型: NUMBER NUMBER
ln(N) 返回 N 的自然对数, 自然对数以常数项 e(2.71828182845904) 为底, N 要求大于 0, 例如: ln(1) = 0 数字类型参数, 可选类型: NUMBER NUMBER
log(BASE, N) 返回以 BASE 为底的对数, BASE 必须大于 0, 且不能为 1, N 必须大于 0, 例如: log(3, 9) = 2 BASE, 可选类型: NUMBER
N, 可选类型: NUMBER
NUMBER db2 redshift
log2(N) 返回以 2 为底的对数, N 必须大于 0, 例如: log2(4) = 2 数字类型参数, 可选类型: NUMBER NUMBER db2 redshift
log10(N) 返回以 10 为底的对数, N 必须大于 0, 例如: log10(100) = 2 数字类型参数, 可选类型: NUMBER NUMBER
rand() 范围 0.0 <= N < 1.0 中的随机值 NUMBER
greatest(ARG1, ARG2) 返回列表中最大的一个 ARG1: 数字类型参数, 可选类型: NUMBER
ARG2: 数字类型参数, 可选类型: NUMBER
NUMBER
least(ARG1, ARG2) 返回列表中最小的一个 ARG1: 数字类型参数, 可选类型: NUMBER
ARG2: 数字类型参数, 可选类型: NUMBER
NUMBER

1.2. 字符串函数

函数名 描述 参数说明 返回值类型 不支持数据源
concat(S1,S2,S3...) 将多个参数作为文本拼接到一起。例如:concat('abc', 123),返回字符串类型:'abc123' 文本类型参数, 可选类型:STRING STRING
initcap(S) 对指定字符串做格式化操作,将字符串中的每个单词首字母变为大写,其他字母变为小写 文本类型参数, 可选类型:STRING STRING tidb mongodb
length(S) 计算字符串的长度 文本类型参数, 可选类型:STRING NUMBER
lower(S) 将指定字符串的所有字符修改为小写 文本类型参数, 可选类型:STRING STRING
position(S,PATTERN) 获取子字符串在指定字符串中第一次出现的位置 1.文本类型参数, 可选类型:STRING;
2.内部参数, 可选类型:STRING
NUMBER
to_string(ARG) 把输入的字段或者值转换成文本 参与计算的参数, 可选类型:ANY STRING
trim(S) 去掉字符串首尾的空格 文本类型参数, 可选类型:STRING STRING
replace(s,s1,s2) 替换字符串。用法replace(s, s1, s2), s2替换s中出现的所有s1。 1.文本类型参数, 可选类型:STRING2;
2.第1个文本参数, 可选类型:STRING;
3.第2个文本参数, 可选类型:STRING
STRING
substring(S,START,LENGTH) 截取子字符串。用法substring(s, start, length), start 从 1 开始。 1.文本类型参数, 可选类型:STRING;
2.指定起始, 可选类型:NUMBER;
3.指定长度, 可选类型:NUMBER
STRING
upper(S) 将指定字符串的所有字符修改为大写 文本类型参数, 可选类型:STRING STRING
unlike(S,LITERAL_PATTERN) 指定字段不包含特定文本 1.文本类型参数, 可选类型:STRING;
2.指定模式, 可选类型:STRING
BOOL
like(S,LITERAL_PATTERN) 指定字段包含特定文本 1.文本类型参数, 可选类型:STRING;
2.指定模式, 可选类型:STRING
BOOL
TRIM(s) 去掉指定字符串首尾的空格。 示例:
TRIM({usertype})
TRIM(' X '))
STRING类型 返回值类型字符串 支持的数据源包括: Athena、Clickhouse、Dameng、Db2、Postgresql、Greenplum、Spark、Hologres、Impala、Kylin、Maxcompute、Mysql、Mongodb、Oracle、Presto、Redshift、Saphana、Sqlserver、Tidb、Vertica
ltrim(s1, s2) 该函数从s1字符串起始位置查找与s2字符串相同的内容,当内容与s2字符串不符时停止查找,并删除查找到的内容。 示例ltrim('abcbabca','ab'),返回结果为cbabca。 参数1:string类型。
参数2:string类型。
返回值为字符串类型。 支持的数据源:Athena、Clickhouse、Dameng、Db2、Postgresql、Greenplum、Spark、Hologres、Impala、Kylin、Maxcompute、Mysql、Mongodb、Oracle、Presto、Redshift、Saphana、Sqlserver、Tidb、Vertica
rtrim(s1, s2) 该函数从s1字符串结束位置开始往前查找与s2字符串相同的内容,当内容与s2字符串不符时停止查找,并删除查找到的内容。示例:rtrim('abadcdabab','ab')返回值为abadcd。 参数1:string类型。
参数2:string类型。
返回值为字符串类型。 支持的数据源:Athena、Clickhouse、Dameng、Db2、Postgresql、Greenplum、Spark、Hologres、Impala、Kylin、Maxcompute、Mysql、Mongodb、Oracle、Presto、Redshift、Saphana、Sqlserver、Tidb、Vertica
split(s, delimiter, n) 该函数将字符串s按分隔符delimiter切分, 并返回切分后的第n个(n从1开始)字符串。如split('abc,abc,abcdef',',',3),返回字符串是abcdef。 参数1:string类型。
参数2:string类型。
参数3:int类型。
返回值为string类型。 支持的数据源: Athena、Clickhouse、Doris、Postgresql、Greenplum、Spark、Hive、Hologres、Impala、Maxcompute、Mysql、Mongodb、Phoenix、Presto、Redshift、Tidb、Vertica
regexp_extract(s, regexp, index) 该函数将字符串s按照正则表达式 regexp的规则拆分,返回index指定的字符 参数1:string类型。
参数2:string类型。
参数3:int类型。
返回值为string类型。 支持的数据源:Athena、Doris、Postgresql、Spark、Hive、Hologres、Impala、Presto
regexp_match(s, regexp) 判断字符串s是否匹配正则表达式regexp模式。匹配成功返回TRUE,匹配失败返回FALSE。 参数1:string类型。
参数2:string类型。
返回值是bool类型。 支持的数据源: Athena、Clickhouse、Dameng、Db2、Doris、Postgresql、Greenplum、Spark、Hive、Hologres、Impala、Maxcompute、Mysql、Mongodb、Oracle、Presto、Redshift、Saphana、Tidb、Vertica
regexp_replace(s, regexp, replacement) 将字符串s中匹配正则表达式regexp的字符替换为指定字符串replacement。 参数1:string类型。
参数2:string类型。
参数3:string类型。
返回值是string类型。 支持的数据源:Athena、Clickhouse、Dameng、Db2、Doris、Postgresql、Greenplum、Spark、Hive、Hologres、Impala、Maxcompute、Mysql、Oracle、Phoenix、Presto、Redshift、Vertica

1.3. 窗口函数

函数名 描述 参数说明 返回值类型 不支持数据源
row_number() 窗口函数,返回当前窗口的行数,计数从1开始逐一递增,数字不重复,比如1、2、3、4。用法:row_number() OVER( [ PARTITION BY expr1 ] ORDER BY expr2 [ DESC ] ) NUMBER impala hive skqrk
oracle tidb mysql
mongodb
rank() 窗口函数,返回当前窗口的排名(保持间隔),计数从1开始,排名相同数字相同,后面的排名会跳跃,比如1、2、2、4。用法:rank() OVER( [ PARTITION BY expr1 ] ORDER BY expr2 [ DESC ] ) NUMBER impala hive
skqrk tidb mysql
mongodb
dense_rank() 窗口函数,返回当前窗口的排名(不保持间隔),计数从1开始,排名相同数字相同,后面的排名不跳跃,比如1、2、2、3。用法:dense_rank() OVER( [ PARTITION BY expr1 ] ORDER BY expr2 [ DESC ] ) NUMBER impala hive
skqrk tidb mysql
mongodb
lag(ARG,I) 窗口函数,向前获得相对于当前记录指定i距离的那条记录的arg数据 1.参与计算的参数, 可选类型:ANY;
2.整数类型参数, 可选类型:NUMBER
ANY impala hive
skqrk tidb mysql
mongodb
lead(ARG,I) 窗口函数,向后获得相对于当前记录指定i距离的那条记录的arg数据 1.参与计算的参数, 可选类型:ANY;
2.整数类型参数, 可选类型:NUMBER
ANY impala hive
skqrk tidb mysql
mongodb

1.4. 日期函数

函数名 描述 参数说明 返回值类型 不支持数据源
add_day(T,I) 返回从起始日期算起,数值字段对应天数之后的日期,如果数值字段是负数,则返回对应天数之前的日期。例如:add_day('2018-02-02',3),返回时间类型:2018-02-05 1.时间类型参数, 可选类型:DATE;
2.整数类型参数, 可选类型:NUMBER
DATE
add_hour(T,I) 返回从起始时间算起,数值字段对应小时数之后的时间,如果数值字段是负数,则返回对应小时数之前的时间。例如:add_hour('2018-02-02 08:30:00.000',3),返回时间类型:2018-02-02 11:30:00.000 1.时间类型参数, 可选类型:DATE;
2.整数类型参数, 可选类型:NUMBER
DATE
add_minute(T,I) 返回从起始时间算起,数值字段对应分钟数之后的时间,如果数值字段是负数,则返回对应分钟数之前的时间。例如:add_minute('2018-02-02 08:30:00.000',3),返回时间类型:2018-02-02 08:33:00.000 1.时间类型参数, 可选类型:DATE;
2.整数类型参数, 可选类型:NUMBER
DATE
add_month(T,I) 返回从起始日期算起,数值字段对应月数之后的日期,如果数值字段是负数,则返回对应月数之前的日期。例如:add_month('2018-02-02',3),返回时间类型:2018-05-02 1.时间类型参数, 可选类型:DATE;
2整数类型参数, 可选类型:NUMBER
DATE
add_quarter(T,I) 返回从起始日期算起,数值字段对应季度数之后的日期,如果数值字段是负数,则返回对应季度数之前的日期。例如:add_quarter('2018-02-02',3),返回时间类型:2018-05-02 1.时间类型参数, 可选类型:DATE;
2.整数类型参数, 可选类型:NUMBER
DATE
add_week(T,I) 返回从起始日期算起,数值字段对应星期数之后的日期,如果数值字段是负数,则返回对应星期数之前的日期。例如:add_week('2018-02-02',3),返回时间类型:2018-05-02 1.时间类型参数, 可选类型:DATE;
2.整数类型参数, 可选类型:NUMBER
DATE
add_year(T,I) 返回从起始日期算起,数值字段对应年数之后的日期,如果数值字段是负数,则返回对应年数之前的日期。例如:add_year('2018-02-02',3),返回时间类型:2021-02-02 1.时间类型参数, 可选类型:DATE;
2.整数类型参数, 可选类型:NUMBER
DATE
add_year_keep_woy(T,I) 和add_year类似,但是调整日期使得年中周数保持不变 1.时间类型参数, 可选类型:DATE;
2.整数类型参数, 可选类型:NUMBER
DATE mysql tidb
sqlserver redshift spark
hive impala presto
db2 mongodb maxcompute
diff_in_day(START,END) 比较两个日期在天数上的差异。例如:diff_in_day('2015-02-03', '2018-02-03'),返回整数类型:1095 1.指定起始, 可选类型:DATE;
2.指定结束, 可选类型:DATE
NUMBER
diff_in_hour(START,END) 比较两个时间在小时上的差异。例如:diff_in_hour('2015-03-24 16:32:32', '2018-02-02 12:34:43'),返回整数类型:25100 1.指定起始, 可选类型:DATE;
2.指定结束, 可选类型:DATE
NUMBER
diff_in_minute(START,END) 比较两个时间在分钟上的差异。例如:diff_in_minute('2015-03-24 16:32:32', '2018-02-02 12:34:43'),返回整数类型:1506002 1.指定起始, 可选类型:DATE;
2.指定结束, 可选类型:DATE
NUMBER
diff_in_month(START,END) 比较两个日期在月份上的差异。例如:diff_in_month('2015-02-03', '2018-02-03'),返回整数类型:36 1.指定起始, 可选类型:DATE;
2.指定结束, 可选类型:DATE
NUMBER
diff_in_year(START,END) 比较两个时间在年份上的差异。例如:diff_in_year('2015-02-03', '2018-02-03'),返回整数类型:3 1.指定起始, 可选类型:DATE;
2.指定结束, 可选类型:DATE
NUMBER
end_of_month(T) 获取时间字段所在的月末最后一天的起始时间 时间类型参数, 可选类型:DATE DATE
extract_day(T) 获取参数中的天部分,表示当天是当月是第几天。例如:extract_day('2018-02-02'),返回整数类型:2 时间类型参数, 可选类型:DATE NUMBER
extract_dow(T) 获取参数中的天部分,表示当天是星期几。例如:extract_dow('2018-02-02'),返回整数类型:5 时间类型参数, 可选类型:DATE NUMBER
extract_doy(T) 获取参数中的天部分,表示当天是一年是第几天。例如:extract_doy('2018-02-02'),返回整数类型:33 时间类型参数, 可选类型:DATE NUMBER
extract_hour(T) 获取参数中的小时部分,表示当前小时数。例如:extract_hour('2018-02-03 13:23:21'),返回整数类型:13 时间类型参数, 可选类型:DATE NUMBER
extract_minute(T) 获取参数中的分钟部分,表示当前分钟数。例如:extract_minute('2018-02-03 13:23:21'),返回整数类型:02 时间类型参数, 可选类型:DATE NUMBER
extract_month(T) 获取参数中的月份部分。例如:extract_month('2018-02-02'),返回整数类型:2 时间类型参数, 可选类型:DATE NUMBER
extract_quarter(T) 获取参数中的季度部分。例如:extract_quarter('2018-02-02'),返回整数类型:1 时间类型参数, 可选类型:DATE NUMBER
extract_second(T) 获取参数中的秒部分,表示当前秒数。例如:extract_second('2018-02-03 13:23:21'),返回整数类型:03 时间类型参数, 可选类型:DATE NUMBER
extract_week(T) 获取参数中的星期部分,表示当天所属星期是一年是第几个星期。例如:extract_week('2018-02-02'),返回整数类型:4 时间类型参数, 可选类型:DATE NUMBER
extract_year(T) 获取参数中的年份部分。例如:extract_year('2018-02-02'),返回整数类型:2018 时间类型参数, 可选类型:DATE NUMBER
month_weekday_count(YEAR,MONTH) 获取参数所在月份的工作日天数。例如:month_weekday_count(2018, 2),返回整数类型:20 1.年份, 可选类型:NUMBER;
2.月份, 可选类型:NUMBER
NUMBER mysql tidb
sqlserver redshift oracle
impala hive spark
db2 mongodb
maxcompute
now() 返回当前时间,时间类型 无参数 DATE
parse_time(S,LITERAL_PATTERN) 使用literal_pattern将s参数解析成时间类型 1.文本类型参数, 可选类型:STRING;
2.指定模式, 可选类型:STRING
DATE sqlserver
time_in_range(T,S) 判断日期date是否在指定的范围,可选范围有: 'Current Year', 'Current Year-to-Date', 'Current Quarter', 'Current Quarter-to-Date', 'Current Month', 'Current Month-to-Date', 'Current Week', 'Current Week-to-Date', 'Today', 'Current Hour', 'Yesterday', 'Recent 7 days', 'Recent 30 days', 'Recent 90 days', 'All Available Date', 'All Invalid Date', 'All' 1.时间类型参数, 可选类型:DATE;
2.文本类型参数, 可选类型:STRING
BOOL
today() 返回当前日期,日期类型 无参数 DATE
trunc_day(T) 将时间或者日期列截取到天。例如:trunc_day('2018-02-02 12:30:59'),返回日期类型:'2018-02-02' 时间类型参数, 可选类型:DATE DATE
trunc_hour(T) 将时间列截取到小时,更细粒度全都置为0。例如:trunc_hour('2018-02-02 12:23:32'),返回时间类型:'2018-02-02 12:00:00' 时间类型参数, 可选类型:DATE DATE
trunc_minute(T) 将时间列截取到分钟,更细粒度全都置为0。例如:trunc_minute('2018-02-02 12:23:32'),返回时间类型:'2018-02-02 12:23:00' 时间类型参数, 可选类型:DATE DATE
trunc_month(T) 将时间或者日期列截取到月,日期置为1日。例如:trunc_month('2018-02-02 12:23:32'),返回日期类型:'2018-02-01' 时间类型参数, 可选类型:DATE DATE
trunc_millisecond(T) 将时间列截取到毫秒,更细粒度全都置为0。例如:trunc_millisecond('2018-02-02 12:23:32.123'),返回时间类型:'2018-02-02 12:23:32.123' 时间类型参数, 可选类型:DATE DATE
trunc_quarter(T) 将时间或者日期列截取到季度,月份置为季度中的第一个月,日期置为1日。例如:trunc_quarter('2018-05-02 12:23:32'),返回日期类型:'2018-04-01' 时间类型参数, 可选类型:DATE DATE
trunc_second(T) 将时间列截取到秒,更细粒度全都置为0。例如:trunc_second('2018-02-02 12:23:32.123'),返回时间类型:'2018-02-02 12:23:32.000' 时间类型参数, 可选类型:DATE DATE
trunc_week(T) 将时间或者日期列截取到周,月份和日期置为本周的第一天。例如:trunc_week('2018-02-02'),返回日期类型:'2018-01-29' 时间类型参数, 可选类型:DATE DATE
trunc_year(T) 将时间或者日期列截取到年,月份和日期置为1月1日。例如:trunc_year('2018-02-02 12:23:32'),返回日期类型:'2018-01-01' 时间类型参数, 可选类型:DATE DATE

1.5. 聚合函数

函数名 描述 参数说明 返回值类型 不支持数据源
avg(N) 获取指定数值列的平均值 数字类型参数, 可选类型:NUMBER NUMBER
count(ARG) 获取指定列的值的数目 参与计算的参数, 可选类型:ANY NUMBER
distinct(ARG) 查询列中的唯一值(去重) 参与计算的参数, 可选类型:ANY ANY
distinct_count(ARG) 获取指定列中非重复结果的数目 参与计算的参数, 可选类型:ANY NUMBER
max(ARG) 获取指定数值列的最大值 参与计算的参数, 可选类型:ANY ANY
max_by(ARG,COMPARE) 获取compare列最大那行对应的arg列的值,如有多个最大值取随机一个 1.参与计算的参数, 可选类型:ANY;
2.对比数值, 可选类型:ANY
ANY impala hive
spark redshift
sqlserver tidb
mysql db2 mongodb
maxcompute
min(ARG) 获取指定数值列的最小值 参与计算的参数, 可选类型:ANY ANY
min_by(ARG,COMPARE) 获取compare列最小那行对应的arg列的值,如有多个最小值取随机一个 1.参与计算的参数, 可选类型:ANY;
2.对比数值, 可选类型:ANY
ANY impala hive
spark redshift
sqlserver tidb
mysql db2 mongodb
maxcompute
sum(N) 获取指定数值列的和 数字类型参数, 可选类型:NUMBER NUMBER
corr(ARG1, ARG2) 返回两个数字列的相关系数, 例如: (arg1, arg2) = [(1,2),(2,3),(3,4),(4,5),(5,6),(1000,1001)], corr(arg1, arg2) = 1 1. ARG1, 可选类型: NUMBER
2. ARG2, 可选类型: NUMBER
NUMBER mysql sqlserver impala
tidb mongodb redshift
covar_pop(ARG1, ARG2) 返回两个数字列的总体协方差, 例如: (arg1, arg2) = [(1,2),(2,3),(3,4),(4,5),(5,6),(1000,1001)], covar_pop(arg1, arg2) = 138058.47222222222 1. ARG1, 可选类型: NUMBER
2. ARG2, 可选类型: NUMBER
NUMBER mysql sqlserver impala
tidb mongodb redshift
covar_samp(ARG1, ARG2) 返回两个数字列的样本协方差, 例如: (arg1, arg2) = [(1,2),(2,3),(3,4),(4,5),(5,6),(1000,1001)], covar_samp(arg1, arg2) = 165670.16666666666 1. ARG1, 可选类型: NUMBER
2. ARG2, 可选类型: NUMBER
NUMBER mysql sqlserver impala
tidb mongodb redshift
regr_avgx(ARG1, ARG2) 返回自变量的平均值 (sum(ARG2)/N), 例如: (arg1, arg2) = [(1,2),(2,3),(3,4),(4,5),(5,6),(1000,1)], regr_avgx(arg1, arg2) = 3.5 1. ARG1, 可选类型: NUMBER
2. ARG2, 可选类型: NUMBER
NUMBER mysql sqlserver hive(小于2.2)
spark impala tidb
presto mongodb redshift
regr_avgy(ARG1, ARG2) 返回因变量的平均值 (sum(ARG1)/N), 例如: (arg1, arg2) = [(1,2),(2,3),(3,4),(4,5),(5,6),(1000,1)], regr_avgy(arg1, arg2) = 3.5 1. ARG1, 可选类型: NUMBER
2. ARG2, 可选类型: NUMBER
NUMBER mysql sqlserver hive(小于2.2)
spark impala tidb
presto mongodb redshift
regr_count(ARG1, ARG2) 两个表达式都不为空的输入行的数目, 例如: (arg1, arg2) = [(1,2),(2,3),(3,4),(4,5),(5,6),(1000,1), (null, 7), (6, null)], regr_count(arg1, arg2) = 6 1. ARG1, 可选类型: NUMBER
2. ARG2, 可选类型: NUMBER
NUMBER mysql sqlserver hive(小于2.2)
spark impala tidb
presto mongodb redshift
regr_intercept(ARG1, ARG2) 由(arg2, arg1)对决定的最小二乘拟合的线性方程的 arg1 截距, 例如: (arg1, arg2) = [(1,2),(2,3),(3,4),(4,5),(5,6),(1000,1)], regr_intercept(arg1, arg2) = 665.666666666666 1. ARG1, 可选类型: NUMBER
2. ARG2, 可选类型: NUMBER
NUMBER mysql sqlserver hive(小于2.2)
spark impala tidb
mongodb redshift
regr_r2(ARG1, ARG2) 相关系数的平方, 例如: (arg1, arg2) = [(1,2),(2,3),(3,4),(4,5),(5,6),(10,1)], regr_r2(arg1, arg2) = 0.06323185011709602 1. ARG1, 可选类型: NUMBER
2. ARG2, 可选类型: NUMBER
NUMBER mysql sqlserver hive(小于2.2)
spark impala tidb
presto mongodb redshift
regr_slope(ARG1, ARG2) 由(arg2, arg1)对决定的最小二乘拟合的线性方程的斜率, 例如: (arg1, arg2) = [(1,2),(2,3),(3,4),(4,5),(5,6),(10,1)], regr_slope(arg1, arg2) = -0.42857142857142855 1. ARG1, 可选类型: NUMBER
2. ARG2, 可选类型: NUMBER
NUMBER mysql sqlserver hive(小于2.2)
spark impala tidb
mongodb redshift
regr_sxx(ARG1, ARG2) sum(arg2^2) - sum(arg2)^2/N (自变量的"平方和"), 例如: (arg1, arg2) = [(1,2),(2,3),(3,4),(4,5),(5,6),(10,1)], regr_sxx(arg1, arg2) = 17.5 1. ARG1, 可选类型: NUMBER
2. ARG2, 可选类型: NUMBER
NUMBER mysql sqlserver hive(小于2.2)
spark impala tidb
presto mongodb redshift
regr_sxy(ARG1, ARG2) sum(arg2 * arg1) - sum(arg2) * sum(arg1)/N (自变量乘以因变量的"积之合"), 例如: (arg1, arg2) = [(1,2),(2,3),(3,4),(4,5),(5,6),(10,1)], regr_sxy(arg1, arg2) = -7.5 1. ARG1, 可选类型: NUMBER
2. ARG2, 可选类型: NUMBER
NUMBER mysql sqlserver hive(小于2.2)
spark impala tidb
presto mongodb redshift
regr_syy(ARG1, ARG2) sum(arg1^2) - sum(arg1)^2/N (因变量的"平方和"), 例如: (arg1, arg2) = [(1,2),(2,3),(3,4),(4,5),(5,6),(10,1)], regr_syy(arg1, arg2) = 50.833333333333336 1. ARG1, 可选类型: NUMBER
2. ARG2, 可选类型: NUMBER
NUMBER mysql sqlserver hive(小于2.2)
spark impala tidb
presto mongodb redshift
stddev_pop(N) 返回数字列的总体标准偏差, 例如: n = [(1000),(1001),(1003),(1004),(1005),(1000)], stddev_pop(n) = 1.9507833184532709 数字类型参数, 可选类型: NUMBER NUMBER tidb
stddev_samp(N) 返回数字列的样本标准偏差, 例如: n = [(1000),(1001),(1003),(1004),(1005),(1000)], stddev_samp(n) = 2.1369760566432809 数字类型参数, 可选类型: NUMBER NUMBER tidb
var_pop(N) 返回数字列的样本标准偏差, 例如: n = [(1000),(1001),(1003),(1004),(1005),(1000)], stddev_samp(n) = 2.1369760566432809 数字类型参数, 可选类型: NUMBER NUMBER tidb mongodb
var_samp(N) 返回数字列的样本方差(样本标准偏差的平方), 例如: n = [(1000),(1001),(1003),(1004),(1005),(1000)], var_samp(n) = 4.5666666666666667 数字类型参数, 可选类型: NUMBER NUMBER tidb mongodb
string_agg(S, DELIMITER) 把字段 S 拼接成字符串, 中间用 DELIMITER 进行分割, 其中 oracle 必须带有 within group 子句 1. S: 需要拼接的字段,可选类型: ANY
2. DELIMITER: 分隔符, 可选类型: STRING
STRING mysql hive sparksql
impala presto tidb
mongodb maxcompute

1.6. 其他函数

函数名 描述 参数说明 返回值类型 不支持数据源
between(ARG,START,END) 判断arg是否处于[start,end]之间 1.参与计算的参数, 可选类型:ANY;
2.指定起始, 可选类型:ANY;3.指定结束, 可选类型:ANY
BOOL
between_ie(ARG,START,END) 判断arg是否处于(start,end]之间 1.参与计算的参数, 可选类型:ANY;
2.指定起始, 可选类型:ANY;3.指定结束, 可选类型:ANY
BOOL
group(ARG) 分组统计 参与计算的参数, 可选类型:ANY ANY
if(B,TRUE,FALSE) 条件分支判断,后两个参数的类型必需一样。例如:if({score}>=60, '及格', '不及格') 1.条件,布尔类型参数, 可选类型:BOOL;
2.条件为真时的值, 可选类型:ANY;
3.条件为假时的值, 可选类型:ANY
ANY
in(ARG,ARR) 字段的值是否在列表中 1.参与计算的参数, 可选类型:ANY;2.数组类型参数, 可选类型:ARRAY BOOL
isnotnull(ARG) 判断指定字段是否为非null 参与计算的参数, 可选类型:ANY BOOL
isnull(ARG) 判断指定字段是否为null 参与计算的参数, 可选类型:ANY BOOL
first(ARG) 获取指定列中第一个记录的值 与计算的参数, 可选类型:ANY ANY redshift
sqlserver tidb mysql
db2 mongodb maxcompute
jsonget(JSON,KEY) 获取JSON的指定key 1.json类型参数, 可选类型:JSON;
2.指定键值, 可选类型:STRING
STRING impala
hive spark oracle
db2 mongodb maxcompute
last(ARG) 获取指定列中最后一个记录的值 参与计算的参数, 可选类型:ANY ANY redshift
sqlserver tidb mysql
db2 mongodb maxcompute
list_collect(ARG) 聚合函数,把arg的参数收集为数组 参与计算的参数, 可选类型:ANY ARRAY impala hive
spark oracle redshift
sqlserver tidb mysql
db2 mongodb maxcompute
list_collect_flatten(ARR) 聚合函数,把arr的参数收集打平为数组 数组类型参数, 可选类型:ARRAY ARRAY impala hive
spark oracle redshift
sqlserver tidb mysql
db2 mongodb maxcompute
list_count(ARR) 获取数组长度 数组类型参数, 可选类型:ARRAY NUMBER impala hive
spark oracle redshift
sqlserver tidb mysql
db2 mongodb maxcompute
list_except(ARR1,ARR2) 计算两个数组的差集 1.第1个数组, 可选类型:ARRAY;
2.第2个数组, 可选类型:ARRAY
ARRAY impala hive
spark oracle redshift
sqlserver tidb mysql
db2 mongodb maxcompute
list_intersect(ARR1,ARR2) 计算两个数组的交集 1.第1个数组, 可选类型:ARRAY;2.第2个数组, 可选类型:ARRAY ARRAY impala hive
spark oracle redshift
sqlserver tidb mysql
db2 mongodb maxcompute
list_union(ARR1,ARR2) 计算两个数组的并集 1.第1个数组, 可选类型:ARRAY;
2.第2个数组, 可选类型:ARRAY
ARRAY impala hive
spark oracle redshift
sqlserver tidb mysql
db2 mongodb maxcompute
notin(ARG,ARR) 字段的值是否不在列表中 1.参与计算的参数, 可选类型:ANY;
2.数组类型参数, 可选类型:ARRAY
BOOL
nth(ARG,I) 获取第i个数值 1.参与计算的参数, 可选类型:ANY;
2.整数类型参数, 可选类型:NUMBER
ANY impala hive
spark oracle redshift
sqlserver tidb mysql
db2 mongodb maxcompute
set_collect(ARG) 聚合函数,把arg的参数收集为去重数组 参与计算的参数, 可选类型:ANY ARRAY impala hive
spark oracle redshift
sqlserver tidb mysql mongodb maxcompute
set_collect_flatten(ARR) 聚合函数,把arr的参数收集打平为去重数组 数组类型参数, 可选类型:ARRAY ARRAY impala hive
spark oracle redshift
sqlserver tidb mysql
db2 mongodb maxcompute
set_union(ARR1,ARR2) 计算两个数组的去重并集 1.第1个数组, 可选类型:ARRAY;
2.第2个数组, 可选类型:ARRAY
ARRAY impala hive
spark oracle redshift
sqlserver tidb mysql
db2 mongodb maxcompute
case when condition then result1 [else result2] end 该函数根据condition条件表达式的返回结果进行输出。当condition为true时,返回result1。当condition为false时,返回result2,else分支不是必须存在的。示例
case
when {code} = 1 then '通过'
else '未通过'
end
condition是一个返回值为布尔类型的表达式 ANY
filter(where condition) 该函数根据condition的条件表达式的结果进行筛选。如果condition条件返回true,则当前记录符合筛选条件。 示例
count(1) filter (where state = 'authorized')
condition是一个返回值为布尔类型的表达式 ARRAY
calculate(expr) 该函数表示优先计算聚合表达式,示例
SUM({energy}) FILTER (WHERE {logindate} > CALCULATE(min({logindate})))
参数为聚合表达式 ANY mongo、hive、impala、Kylin开源版、hbase、phoenix、elastic search、solr

results matching ""

    No results matching ""

    替换数据集 UDF函数