函数列表
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,将字符串转为时间格式。  |