一、数组函数:

--1、数组定义:

select array('a','b','b','c');

--2、返回数组下标

select arrayEnumerate(['a','b','c'])

--3、数组求和

select arraySum([1,2,3,4]); --10

select arrayCumSum([1,2,3,4]); --[1,3,6,10]

--4、数组去重:

select arrayDistinct(['a','b','b','c']); --['a','b','c']

--5、数组去重统计个数

select uniqArray(['a','b','b','c']); --3

--6、合并数组:

select arrayConcat(['a','b'],['hello','jim'],['e','f'])

--7、数组添加、移除元素:

select arrayPushBack(['a','b'],'c');

select arrayPopBack(['a','b','c']);

--8、数组排序:

select arraySort(range(2, 10, 2));

select arrayReverseSort(range(2, 10, 2));

--9、数组反转

select arrayReverse(['a','b','b','c']); --['c','b','b','a']

--10、数组拉链操作:

select arrayZip(['a','b','c'],['1','2','3'])

-------------------------------------------------------------------------

二、字符串函数:

select splitByString(',','1,2,3,abcde');

select visitParamExtractString('{"name":"zss","age":21}' , 'name') ;

select number,rand(number),randConstant(number) from numbers(3)

-------------------------------------------------------------------------

三、高阶函数

select arrayMap(a -> a * a ,[1,2,3,4,5]);

select arrayFilter(a -> a % 2 == 0,[1,2,3,4,5]);

--3、符合条件的元素被前面的元素覆盖掉, 如果不满足条件数据不做处理

select arrayFill(a -> not isNull(a) ,[1,2,3,null,4,5]);

--4、符合条件的元素被后面的元素覆盖掉

select arrayReverseFill(a -> not isNull(a) ,[1,2,3,null,4,5]);

--5、数组炸裂 行转列

select arrayJoin(splitByChar(',','a,b,c')) ;

--6、列转行,将所有的列聚合成一个数组

select groupArray(arrayJoin(splitByChar(',','a,b,c')));

select groupUniqArray(arrayJoin(splitByChar(',','a,b,b,c')));

-------------------------------------------------------------------------

四、字符串搜索函数

--position:显示hello在字符串中第一个出现的位置。

select position('ckhelloworldhellospark','hello') AS positionSearch; --3

--match:匹配到了则返回1,否则返回0

select match('ckhelloworldhellospark','hello') as matchSearch; --1

-------------------------------------------------------------------------

五、链路函数

Logo

汇聚全球AI编程工具,助力开发者即刻编程。

更多推荐