函数列表
ResourceQL支持以下函数:
函数 | 功能描述 |
|---|---|
abs(x) | 返回x的绝对值。 |
ceil/ceiling(x) | 把小数x向上取整。 |
floor(x) | 把小数x向下取整。 |
pow/power(x, p) → double | 计算x^p。 |
round(x) | 把小数x四舍五入取整。 |
round(x, d) | 把小数x四舍五入保留d位小数。 |
sign(x) | 返回x的符号,正数是1负数是-1。 |
函数 | 功能描述 |
|---|---|
concat(str1, str2, ..., strn) → string | 合并字符串。 |
chr(n) → string | 把数字n转化成对应的unicode字符。 |
codepoint(str) → int | 把unicode字符转化成数字。 |
length(str) → int | 返回字符串的长度。 |
lower/upper(str) → string | 把字符串变换成全小写/大写。 |
replace(str, sub) → string | 把字符串str里所有sub子串都删除。 |
replace(str, sub, replace) → string | 把字符串str里所有sub子串都替换成replace。 |
reverse(str) → string | 把字符串str翻转。 |
split(str, delimiter) → array | 把字符串str按照delimiter切割成数组。 |
strpos(str, sub) → int | 返回str里第一次出现sub的下标。下标从1开始,不存在返回0。 |
strpos(str, sub, n) -> int | 返回str里第n次出现sub的下标。下标从1开始,不存在返回0。 |
strrpos(str, sub) → int | 返回str里倒数第一次出现sub的下标。下标从1开始,不存在返回0。 |
strrpos(str, sub, n) -> int | 返回str里倒数第n次出现sub的下标。下标从1开始,不存在返回0 。 |
substr(str, start) → string | 返回str里从start开始的子串。 |
substr(str, start, length) → string | 返回str里从start开始,长度为length的子串。 |
trim/lstrim/rstrim(str) | 把str里开头和结尾/开头/结尾的空白字符删掉。 |
函数 | 功能描述 |
|---|---|
all_match(array(T), function(T, boolean)) → boolean | 询问每个函数是否都满足给定函数。 |
any_match(array(T), function(T, boolean)) → boolean | 询问是否存在元素满足给定函数。 |
array_average(a) → double | 返回数组a的平均值。 |
array_distinct(a) → array | 返回数组a去重后的新数组。 |
array_frequency(a) → map | 统计数组中每个元素出现的次数并返回对应的map。 |
array_has_duplicates(a) → boolean | 查询数组中是否有重复元素。 |
array_intersect(a, b) → array | 对数组a和b的元素求个交集。 |
array_join(x, delimiter) → string | 把数组元素连接成字符串,中间用delimiter来分隔。 |
array_join(x, delimiter[, null_replacement]) → string | 把数组元素连接成字符串,中间用delimiter来分隔,null元素用null_replacement填充。 |
array_max/array_min(a) | 返回数组a的最大值/最小值。 |
array_position(a, element) → int | 查询element在数组a中的位置。如果不存在返回0。 |
array_position(a, element, instance) → int | 查询element在数组a中的位置。如果不存在返回0。如果'instance>0',返回第'instance' 出现的位置;如果'instance < 0',返回倒数'instance'位置。 |
array_remove(a, element) → array | 把数组a中等于element的元素都删除。 |
array_sort(a) → array | 返回数组a排序后的新数组。 |
array_sort(array(T), function(<T, T>, int)) → array | 返回数组a排序后的新数组。需要提供一个二元比较函数,(-1,0,1) 分别表示小于等于和大于。 |
array_sum(a) | 返回数组a的元素和。 |
array_union(a, b) → array | 返回a和b的并集的数组。 |
array_except(x, y) → array | 返回x中但不在y中的元素数组。 |
cardinality(a) → int | 返回数组a的大小。 |
concat(a1, a2, ...) → array | 合并数组,等价于'||'运算符。 |
contains(a, element) → boolean | 判断element是否出现在数组a中。 |
element_at(a, index) | 返回数组a中的第index个元素。如果'index < 0'将从后往前找。 |
filter(array(T), function(T, boolean)) → array(T) | 筛选满足条件的元素组成新数组。 |
none_match(array(T), function(T, boolean)) → boolean | 询问是否所有元素都不满足给定函数。 |
reverse(a) → array | 把数组a前后取反。 |
sequence(start, stop, step) | 和python的range效果类似。 |
shuffle(a) → array | 把数组a的元素打乱。 |
slice(a, start, length) → array | 截取数组a从start开始长度为length的子串。 |
transform(array(T), function(T, S)) → array(S) | 把原数组变换成另一个数组。 |
函数 | 功能描述 |
|---|---|
arbitrary(x) | 返回任意一个非NULL的元素(如果存在的话)。 |
array_agg(x) → array | 把元素合并成一个数组返回。 |
avg(x)→ double | 返回算术平均数。 |
bool_and/bool_or(x) → boolean | 对每个元素执行布尔AND/OR。 |
coalesce(value1, value2, ...) | 返回第一个非NULL的元素。会被短路。 |
count(*)/count(x) → int | 计数。 |
greatest(value1, value2, ..., valueN) | 返回给定同类型权值里最大的权值。 |
histogram(x) → map | 返回一个map,统计了x里每个不同的权值以及他们对应的个数。 |
least(value1, value2, ..., valueN) | 返回给定同类型权值里最小的权值。 |
max/min(x, n=1) | 返回元素里的最大/小值,第n大/小值。 |
max_by/min_by(x, y, n=1) | 根据元素y的最大/小值或第n大/小值,返回对应的元素x。 |
geometric_mean(x) → double | 返回几何平均数。 |
set_agg(x) → array | 把元素去重后合并成一个数组返回。 |
set_union(x) → array | 把每个读入的数组的元素求并,返回并集的数组。 |
sum(x) | 返回和。 |
multimap_agg(key, value) | 返回从输入键/值对创建的多重映射。 |
map_agg(key, value) | 返回从输入键/值对创建的映射。 |
函数 | 功能描述 |
|---|---|
now() → date | 获取当前时间。 |
date_diff(unit, timestamp1, timestamp2) → int | 返回timestamp2-timestamp1在unit下的时间间隔,unit的可选值:millisecond、second、minute、hour、day、week、month、quarter、year。 |
date_parse(string, format) → timestamp | 通过指定格式format,将字符串转为时间格式。 |

