转载

StarRocks支持的函数列表

StarRocks 提供了丰富的函数,方便您在日常数据查询和分析时使用。除了常见的函数分类,StarRocks 也支持 ARRAY、JSON、MAP、STRUCT 等半结构化函数,支持 Lambda 高阶函数。如果以上函数都不符合您的需求,您还可以自行编写 Java UDF 来满足业务需求。 您可以按照以下分类来查找目标函数。

日期函数

函数 功能
add_months 在给定的日期(DATE、DATETIME)上增加一个整数月。
adddate,days_add 向日期添加指定的时间间隔。
convert_tz 将给定的时间转化为另一个时区的时间。
current_date,curdate 获取当前的日期,以 DATE 类型返回。
current_time,curtime 获取当前的时间,以 TIME 类型返回。
current_timestamp 获取当前时间,以 DATETIME 类型返回。
date 从日期或时间日期表达式中截取日期部分。
date_add 向日期添加指定的时间间隔。
date_diff 根据指定的时间单位返回两个日期的差值。
date_format 按照 format 指定的格式来显示日期/时间数据。
date_slice 根据指定的时间粒度周期,将给定的时间转化到其所在的时间粒度周期的起始或结束时刻。
date_sub, subdate 从日期中减去指定的时间间隔。
date_trunc 根据指定的精度级别,将一个日期时间截断。
datediff 计算两个日期的差值,结果精确到天。
day 返回指定日期中的天信息。
dayname 返回指定日期对应的星期名称。
dayofmonth 返回日期中的天信息,返回值范围 1~31。
dayofweek 返回指定日期的工作日索引值。
dayofyear 计算指定日期为对应年中的哪一天。
days_add 向日期添加指定的时间间隔。
days_diff 计算开始时间和结束时间相差几天。
days_sub 从给定日期或者日期时间中减去指定的天数,获得新的 DATETIME 结果。
from_days 通过计算当前时间距离 0000-01-01 的天数,计算出当前是时间哪一天。
from_unixtime 将 UNIX 时间戳转化为对应的时间格式。
hour 获得指定日期中的小时信息。
hours_add 给指定的日期时间增加指定的小时数。
hours_diff 计算开始时间和结束时间相差多少个小时。
hours_sub 从指定的日期时间中减少指定的小时数。
last_day 根据指定的时间单位,返回输入的日期对应的最后一天。
makedate 根据给定的年份和天数值,构造一个日期值。
microseconds_add 向一个日期时间添加指定的时间间隔,单位为微秒。
microseconds_sub 从一个日期时间中减去指定的时间间隔,单位为微秒。
minute 获得日期中的分钟的信息,返回值范围为 0~59。
minutes_add 给指定的日期时间或日期增加指定的分钟数。
minutes_diff 计算开始时间和结束时间相差多少分钟。
minutes_sub 从指定的日期时间或日期中减去指定的分钟数。
month 返回指定日期中的月份。
monthname 返回指定日期对应的月份。
months_add 给日期添加指定的月数。
months_diff 计算开始时间和结束时间相差几个月。
months_sub 从日期中减去指定的月数。
next_day 根据输入的日期值,返回它之后的那个星期几所对应的日期。
now 获取当前的时间,以 DATETIME 类型返回。
previous_day 根据输入的日期值,返回它之前的那个星期几所对应的日期。
quarter 返回给定的日期值对应的季度,范围 1~4。
second 获得日期中的秒的信息,返回值范围 0~59。
seconds_add 向一个日期时间添加指定的时间间隔,单位为秒。
seconds_diff 计算开始时间和结束时间相差多少秒。
seconds_sub 给指定的日期时间或日期减去指定的秒数。
str_to_date 按照 format 指定的格式将 str 转换为 DATETIME 类型的值。
str2date 按照 format 指定的格式将 str 转换为 DATE 类型的值。
time_slice 根据指定的时间粒度周期,将给定的时间转化为其所在的时间粒度周期的起始或结束时刻。
time_to_sec 将 time 时间值转换为秒数。
timediff 返回两个 DATETIME 类型值之间的差值,返回 TIME 类型。
timestamp 将时间表达式转换为 DATETIME 值。
timestampadd 将整数表达式间隔添加到日期或日期时间表达式中。
timestampdiff 返回两个日期或日期时间表达式的差值。
to_days 返回指定日期距离 0000-01-01 的天数。
to_date 返回 DATETIME 类型值中的日期部分。
unix_timestamp 将 DATE 或 DATETIME 类型的值转化为 UNIX 时间戳。
utc_timestamp 返回当前 UTC 日期时间。
week 根据指定的周数计算逻辑,计算指定的日期时间属于一年中的第几周。
weekofyear 计算指定的日期时间属于一年中的第几周。
weeks_add 向原始的日期时间加上指定周数。
weeks_diff 计算开始时间和结束时间相差几周。
weeks_sub 从原始的日期中减去若干周数。
year 返回指定日期时间中的年份。
years_add 向原始的日期时间添加指定的年数。
years_diff 计算开始时间和结束时间相差几年。
years_sub 从指定的日期时间中减去指定年数。

字符串函数

函数 功能
append_trailing_char_if_absent 如果字符串非空并且末尾不包含 trailing_char 字符,则将 trailing_char 字符附加到末尾。
ascii 返回字符串第一个字符对应的 ASCII 码。
char 根据输入的 ASCII 值返回对应的字符。
char_length,character_length 返回字符串的长度。
concat 将多个字符串连接起来。
concat_ws 使用分隔符将两个或以上的字符串拼接成一个新的字符串。
ends_with 如果字符串以指定后缀结尾,返回 true,否则返回 false。
find_in_set 返回指定的字符串在一系列字符串列表中第一次出现的位置。
group_concat 将结果集中的多行结果连接成一个字符串。
hex_decode_binary 将一个十六进制编码的字符串解码为 VARBINARY 类型的值。
hex_decode_string 将输入字符串中每一对十六进制数字解析为一个数字,并将解析得到的数字转换为表示该数字的字节,然后返回一个二进制字符串。
hex 对于输入的数字或字符,返回十六进制的字符串表示形式。
instr 返回子字符串在指定的字符串中第一次出现的位置。
left 从字符串左边部分返回指定长度的字符。
length 返回字符串的字节长度。
locate 从 pos 下标开始的字符串处开始查找子字符串在某个字符串中第一次出现的位置。
lower 将参数中所有的字符串转换成小写。
lpad 根据指定的长度在字符串前面(左侧)追加字符。
ltrim 从字符串的左侧(开始部分)移除连续出现的空格或指定字符。
money_format 将数字按照货币格式输出,整数部分每隔 3 位用逗号分隔,小数部分保留 2 位。
null_or_empty 如果字符串为空字符串或者 NULL 则返回 true,否则返回 false。
parse_url 从目标 URL 中提取一部分信息。
repeat 将字符串重复 count 次输出,count 小于 1 时返回空字符串。
replace 将字符串中符合指定模式的字符全部替换成其他字符。
reverse 将字符串或数组反转,返回的字符串或数组的顺序和源字符串或数组的顺序相反。
right 从字符串右边部分返回指定长度的字符。
rpad 根据指定的长度在字符串后面(右侧)追加字符。
rtrim 从字符串的右侧(结尾部分)移除连续出现的空格或指定字符。
space 返回由指定数量的空格组成的字符串。
split 根据分隔符拆分字符串,将拆分后的所有字符串以 ARRAY 的格式返回。
split_part 根据分割符拆分字符串,返回指定的分割部分。
starts_with 如果字符串以指定前缀开头返回 1,否则返回 0。
str_to_map 将给定的字符串分割成键值对 (Key-Value pair),返回包含这些键值对的 Map。
strleft 从字符串左边部分返回指定长度的字符。
strright 从字符串右边部分返回指定长度的字符。
substr, substring 返回字符串中从位置 pos 开始的指定长度的子字符串。
trim 从字符串的左侧和右侧移除连续出现的空格或指定的字符。
ucase 该函数与 upper 一致,将字符串转换为大写形式。
unhex 将输入的字符串中的两个字符为一组转化为 16 进制的字符,然后拼接成字符串输出。
upper 将字符串转换为大写形式。

聚合函数

函数 功能
any_value 在包含 GROUP BY 的聚合查询中,该函数用于从每个聚合分组中随机选择一行返回。
approx_count_distinct 返回类似于 COUNT(DISTINCT col) 结果的近似值。
array_agg 将一列中的值(包括空值 null)串联成一个数组 (多行转一行)。
avg 用于返回选中字段的平均值。
bitmap 通过 bitmap 函数实现聚合。
bitmap_agg 将一列中的多行非 NULL 数值合并成一行 BITMAP 值,即多行转一行。
count 返回满足条件的行数。
group_concat 将结果集中的多行结果连接成一个字符串。
grouping 判断一个列是否为聚合列,如果是聚合列则返回 0,否则返回 1。
grouping_id 用于区分相同分组标准的分组统计结果。
hll_empty 生成空 HLL 列,用于 INSERT 或导入数据时补充默认值。
hll_hash 将一个数值转换为 HLL 类型。通常用于导入中,将源数据中的数值映射到 StarRocks 表中的 HLL 列类型。
hll_raw_agg 用于聚合 HLL 类型的字段,返回 HLL 类型。
hll_union 返回一组 HLL 值的并集。
hll_union_agg 将多个 HLL 类型数据合并成一个 HLL。
max 返回表达式中的最大值。
max_by 返回与 y 的最大值相关联的 x 值。
min 返回表达式中的最小值。
min_by 返回与 y 的最小值关联的 x 值。
multi_distinct_count 返回表达式去除重复值后的行数,功能等同于 COUNT(DISTINCT expr)。
multi_distinct_sum 返回表达式去除重复值后的总和,功能等同于 sum(distinct expr)。
percentile_approx 返回第 p 个百分位点的近似值。
percentile_cont 计算精确百分位数。
percentile_disc 计算百分位数。
retention 用于计算一段时间内的用户留存情况。
sum 返回指定列所有值的总和。
std 返回指定列的标准差。
stddev,stddev_pop 返回表达式的总体标准差。
stddev_samp 返回表达式的样本标准差。
variance, variance_pop, var_pop 返回表达式的方差。
var_samp 返回表达式的样本方差。
window_funnel 搜索滑动时间窗口内的事件列表,计算条件匹配的事件链里的最大连续事件数。

数学函数

函数 功能
abs 计算绝对值。
acos 计算反余弦值(单位为弧度)。
asin 计算反正弦值(单位为弧度)。
atan 计算反正切值(单位为弧度)。
atan2 通过使用两个参数的符号确定象限,计算 x/y 的反正切的主值,返回值在 [-π, π] 范围内。
bin 将输入的参数转成二进制。
ceil, dceil 返回大于或等于 x 的最小整数。
ceiling 返回大于或等于 x 的最小整数。
conv 对输入的参数进行进制转换。
cos 计算余弦值。
cosh 计算输入数值的双曲余弦值。
cot 计算余切值(单位为弧度)。
degrees 将参数 x 转成角度,x 是弧度。
divide 除法函数,返回 x 除以 y 的结果,
e 返回自然对数函数的底数。
exp, dexp 返回 e 的 x 次幂。
floor, dfloor 返回不大于 x 的最大整数值。
fmod 取模函数,返回两个数相除之后的浮点余数。
greatest 返回多个输入参数中的最大值。
least 返回多个输入参数中的最小值。
ln, dlog1, log 返回参数 x 的自然对数,以 e 为底数。
log 返回以 base 为底数的 x 的对数。如果未指定 base,则该函数等同于 ln()。
log2 返回以 2 为底数的 x 的对数。
log10, dlog10 返回以 10 为底数的 x 的对数。
mod 取模函数,返回两个数相除之后的余数。
multiply 计算两个参数的乘积。
negative 返回参数的负数。
pi 返回圆周率。
pmod 取模函数,返回两个数相除之后的正余数。
positive 返回表达式的结果。
pow, power, dpow, fpow 返回参数 x 的 y 次方。
radians 将参数 x 转为弧度,x 是角度。
rand, random 返回一个 0 (包含) 到 1(不包含)之间的随机浮点数。
round, dround 按照指定的小数位数对数值进行四舍五入。
sign 返回参数 x 的符号。
sin 计算参数 x 的正弦,x 为弧度值。
sinh 计算输入数值的双曲正弦值。
sqrt, dsqrt 计算参数的平方根。
square 计算参数的平方。
tan 计算参数 x 的正切,x 为弧度值。
tanh 计算输入数值的双曲正切值。
truncate 返回数值 x 保留到小数点后 y 位的值。

Array 函数

函数 功能
all_match 判断数组中的所有元素是否都匹配谓词中指定的条件。
any_match 判断数组中是否有元素匹配谓词中指定的条件。
array_agg 将一列中的值(包括空值 null)串联成一个数组 (多行转一行)。
array_append 在数组末尾添加一个新的元素。
array_avg 求取一个ARRAY中的所有数据的平均数。
array_concat 将多个数组拼接成一个数组。
array_contains 检查数组中是否包含某个元素,是的话返回 1,否则返回 0。
array_contains_all 检查数组 arr1 是否包含数组 arr2 中的所有元素。
array_cum_sum 对数组中的元素进行向前累加。
array_difference 对于数值型数组,返回相邻两个元素的差(从后者中减去前者)构成的数组。
array_distinct 数组元素去重。
array_filter 根据设定的过滤条件返回数组中匹配的元素。
array_generate 生成一个包含数值元素的数组,数值范围在 start 和 end 之间,步长为 step。
array_intersect 对于多个同类型数组,返回交集。
array_join 将数组中的所有元素连接生成一个字符串。
array_length 计算数组中的元素个数。
array_map 用于将输入的 arr1,arr2 等数组按照 lambda_function 进行转换,输出一个新的数组。
array_max 求取一个ARRAY中的所有数据中的最大值。
array_min 求取一个ARRAY中的所有数据中的最小值。
arrays_overlap 判断两个相同类型的数组中是否包含相同的元素。
array_position 获取数组中某个元素位置,是的话返回位置,否则返回 0.
array_remove 从数组中移除指定元素。
array_slice 返回数组的一个数组片段。
array_sort 对数组中的元素进行升序排列。
array_sortby 对数组中的元素根据另外一个键值数组元素或者 Lambda 函数生成的键值数组元素进行升序排列。
array_sum 对数组中的所有元素求和。
array_to_bitmap 将 array 类型转化为 bitmap 类型。
cardinality 计算数组中的元素个数,
element_at 获取 Array 数组中指定位置的元素。
reverse 将字符串或数组反转,返回的字符串或数组的顺序和源字符串或数组的顺序相反。
unnest 表函数,用于将一个数组展开成多行。

Bitmap 函数

函数 功能
bitmap_agg 将一列中的多行非 NULL 数值合并成一行 BITMAP 值,即多行转一行。
bitmap_and 计算两个 bitmap 的交集,返回新的 bitmap。
bitmap_andnot 计算两个输入的 bitmap 的差集。
bitmap_contains 计算输入值是否在 Bitmap 列中。
bitmap_count 统计 bitmap 中不重复值的个数。
bitmap_empty 返回一个空 bitmap,主要用于 insert 或 stream load 时填充默认值。
bitmap_from_string 将一个字符串转化为一个 bitmap,字符串由逗号分隔的一组 UInt32 数字组成。
bitmap_hash 对任意类型的输入计算 32 位的哈希值,返回包含该哈希值的 bitmap。
bitmap_has_any 计算两个 Bitmap 列是否存在相交元素。
bitmap_intersect 求一组 bitmap 值的交集。
bitmap_max 获取 Bitmap 中的最大值。
bitmap_min 获取 Bitmap 中的最小值。
bitmap_or 计算两个 bitmap 的并集,返回新的 bitmap。
bitmap_remove 从 Bitmap 中删除指定的数值。
bitmap_subset_in_range 从 Bitmap 中返回取值在指定范围内的元素。
bitmap_subset_limit 根据指定的起始值,从 BITMAP 中截取指定个数的元素。
bitmap_to_array 将 BITMAP 中的所有值组合成 BIGINT 类型的数组。
bitmap_to_base64 将 bitmap 转换为 Base64 字符串。
base64_to_bitmap 将 Base64 编码的字符串转化为 Bitmap。
bitmap_to_string 将一个 bitmap 转化成一个逗号分隔的字符串。
bitmap_union 求一组 bitmap 值的并集。
bitmap_union_count 计算一组 bitmap 值的并集,并返回并集的基数。
bitmap_union_int 计算 TINYINT,SMALLINT 和 INT 类型的列中不重复值的个数。
bitmap_xor 计算两个 Bitmap 中不重复元素所构成的集合。
intersect_count 求 bitmap 交集大小。
sub_bitmap 计算两个 bitmap 之间相同元素的个数。
to_bitmap 将输入值转换为 bitmap。

JSON 函数

函数 功能
json_array 接收 SQL 数组并返回一个 JSON 类型的数组。
json_object 接收键值集合,返回一个包含这些键值对的 JSON 类型的对象。
parse_json 将字符串类型的数据构造为 JSON 类型的数据。
箭头函数 箭头函数可以查询 JSON 对象中指定路径的值。
cast 实现 JSON 类型数据与 SQL 类型间的相互转换。
get_json_double 解析并获取 JSON 字符串内指定路径中的浮点型内容。
get_json_int 解析并获取 JSON 字符串内指定路径中的整型内容。
get_json_string 解析并获取 JSON 字符串内指定路径中的字符串。
json_each 将 JSON 对象的最外层按照键和值展开为两列,返回一行或多行数据的集合。
json_exists 查询 JSON 对象中指定路径是否存在满足特定条件的值。
json_keys 返回 JSON 对象中所有最上层成员 (key) 组成的数组。
json_length 计算 JSON 字符串的长度。
json_query 查询 JSON 对象中指定路径(json_path)的值,并输出 JSON 类型的结果。
json_string 将 JSON 类型转化为 JSON 字符串。

Map 函数

函数 功能
cardinality 计算 Map 中元素的个数。
distinct_map_keys 删除 Map 中重复的 Key。
element_at 获取 Map 中指定键 (Key) 对应的值 (Value)。
map_apply 返回 Map 中所有 Key 或 Value 进行 Lambda 函数运算后的 Map 值。
map_concat 将多个 Map 合并成一个 Map。
map_filter 根据设定的过滤函数返回 MAP 中匹配的 Key-value 对。
map_from_arrays 将两个 ARRAY 数组作为 Key 和 Value 组合成一个 MAP 对象。
map_keys 返回 Map 中所有 key 组成的数组。
map_size 计算 Map 中元素的个数。
map_values 返回 Map 中所有 Value 组成的数组。
transform_keys 对 Map 中的 key 进行 Lambda 转换。
transform_values 对 Map 中的 value 进行 lambda 转换。

Struct 函数

函数 功能
named_struct 根据给定的字段名和字段值来构建 STRUCT。
row 根据给定的一个或多个值来构建 STRUCT。

表函数

函数 功能
files 从云存储或 HDFS 读取数据文件。
generate_series 生成一系列从 start 到 end 的数值,步长为 step。
json_each 将 JSON 对象的最外层按照键和值展开为两列,返回一行或多行数据的集合。
unnest 用于将一个数组展开成多行。

Bit 函数

函数 功能
bitand 返回两个数值在按位进行 AND 运算后的结果。
bitnot 返回参数 x 进行取反运算后的结果。
bitor 返回两个数值在按位进行 OR 运算后的结果。
bitxor 返回两个数值在按位 XOR 运算后的结果。
bit_shift_left 将一个数值或数值表达式的二进制表示向左移动指定的位数。该函数执行算术左移。
bit_shift_right 将一个数值或者数值表达式的二进制表示向右移动指定的位数。该函数执行算术右移。
bit_shift_right_logical 将一个数值或者数值表达式的二进制表示向右移动指定的位数。该函数执行逻辑右移。

Binary 函数

函数 功能
from_binary 根据指定的格式,将二进制数据转化为 VARCHAR 类型的字符串。
to_binary 根据指定的二进制格式 (binary_type),将 VARCHAR 字符串转换为二进制类型。

加密函数

函数 功能
aes_decrypt 使用 AES_128_ECB 算法将字符串解密并返回一个二进制字符串。
aes_encrypt 使用 AES_128_ECB 算法对字符串进行加密并返回一个二进制字符串。
base64_decode_binary 解码某个 Base64 编码的字符串,并返回一个 VARBINARY 类型的值。
base64_decode_string 用于解码某个 Base64 编码的字符串,是 to_base64() 函数的反向函数。
from_base64 将 Base64 编码过的字符串 str 进行解码。反向函数为 to_base64。
md5 使用 MD5 加密算法将给定字符串进行加密,输出一个 128-bit 的校验和 (checksum),以 32 字符的十六进制字符串表示。
md5sum 计算多个输入参数的 MD5 128-bit 校验和 (checksum),以 32 字符的十六进制字符串表示。
sha2 计算 SHA-2 系列哈希函数 (SHA-224/SHA-256/SHA-384/SHA-512)。
sm3 使用 SM3 摘要算法,将字符串加密为 256-bit 的 十六进制字符串,每 32 位用空格分隔。
to_base64 将字符串 str 进行 Base64 编码。反向函数为 from_base64。

模糊/正则匹配函数

函数 功能
like 判断字符串是否模糊匹配给定的模式 pattern
regexp 判断字符串是否匹配给定的正则表达式 pattern
regexp_extract 对字符串进行正则匹配,抽取符合 pattern 的第 pos 个匹配部分,需要 pattern 完全匹配 str 中的某部分,才能返回 pattern 部分中需匹配部分,如果没有匹配就返回空字符串。
regexp_replace 对字符串进行正则匹配,将命中 pattern 的部分使用 repl 来进行替换。

条件函数

函数 功能
case 将表达式与一个值比较。如果能找到匹配项,则返回 THEN 中的结果。如果未找到匹配项,则返回 ELSE 中的结果。
coalesce 从左向右返回参数中的第一个非 NULL 表达式。
if 若参数 expr1 成立,返回结果 expr2;否则返回结果 expr3。
ifnull 若 expr1 不为 NULL,返回 expr1。若 expr1 为 NULL,返回 expr2。
nullif 若参数 expr1 与 expr2 相等,则返回 NULL,否则返回 expr1 的值。

百分位函数

函数 功能
percentile_approx_raw 计算给定参数 x 的百分位数。
percentile_empty 构造一个 percentile 类型的数值,主要用于 INSERT 或 Stream Load 导入时填充默认值。
percentile_hash 将 double 类型数值构造成 percentile 类型数值。
percentile_union 用于对分组结果进行聚合。

标量函数

函数 功能
hll_cardinality 用于计算 HLL 类型值的基数。

工具函数

函数 功能
current_role 获取当前用户激活的角色。
current_version 获取当前 StarRocks 的版本
host_name 获取计算所在节点的主机名。
isnull 判断输入值是否为 NULL。
last_query_id 返回最近一次执行的查询的 ID。
sleep 将当前正在执行的线程休眠 x 秒。
uuid 以 VARCHAR 形式返回一个随机的 UUID 值。长度为36个字符,包含32个十六进制字符,由4个连字符进行连接,形式为8-4-4-4-12。
uuid_numeric 返回一个数值类型的随机 UUID 值。
version 返回当前 MySQL 数据库的版本。

地理位置函数

函数 功能
ST_AsText, ST_AsWKT 将一个几何图形转化为 WKT(Well Known Text)的表示形式。
st_circle 将一个 WKT (Well Known Text) 转化为地球球面上的一个圆。
st_contains 判断几何图形 shape1 是否完全能够包含几何图形 shape2。
st_distance_sphere 计算地球两点之间的球面距离,单位是米。
st_geometryfromtext 将一个 WKT(Well Known Text)转化为对应的内存的几何形式。
st_linefromtext, ST_LineStringFromText 将一个 WKT(Well Known Text)转化为一个 Line 形式的内存表现形式。
st_point 通过给定的 X 坐标值、Y 坐标值返回对应的 Point。
st_polygon 将一个 WKT(Well Known Text)转化为对应的多边形内存形式。
st_x 当 point 是一个合法的 POINT 类型时,返回对应的 X 坐标值。
st_y 当 point 是一个合法的 POINT 类型时,返回对应的 Y 坐标值。

Hash 函数

函数 功能
murmur_hash3_32 返回输入字符串的 32 位 murmur3 hash 值。
正文到此结束
Loading...