數(shù)組合并后去重
image.png
一陋桂、去重
1.arrayDistinct
對數(shù)組進(jìn)行去重
SELECT arrayDistinct( [1,2,3,6,34,3,11])
2.arrayUniq
計(jì)算數(shù)組中有多少個(gè)不重復(fù)的值
SELECT arrayUniq( [1,2,3,6,34,3,11])
3.arrayCompact
對數(shù)組內(nèi)數(shù)據(jù)實(shí)現(xiàn)相鄰去重
SELECT arrayCompact([1, 2, 2, 3, 2, 3, 3])
二、數(shù)組屬性
1.arrayJoin
對數(shù)組進(jìn)行展開操作爹耗,行變列
SELECT arrayJoin( [1,2,3,6,34,3,11] ) as a
2.arrayFilter
篩選出數(shù)組中滿足條件的數(shù)據(jù)
SELECT a from (SELECT arrayFilter(x->x%2=0, [1,2,3,6,34,3,11]) as a
3.arrayEnumerate
返回?cái)?shù)組下標(biāo)
SELECT arrayEnumerate([1,2,3,6,34,3,11])
4.arrayReduce
對數(shù)組進(jìn)行聚合操作碴卧,如有min 击奶、max、avg 等
SELECT arrayReduce('avg', [1,2,3,6,34,3,11] )
5.arrayEnumerateDense
標(biāo)記出數(shù)組中相同的元素
SELECT arrayEnumerateDense( [1,2,3,6,34,3,11] )
6.hasAny
判斷數(shù)組中是否包含某些值中任意一個(gè)值,若包含則返回1炬称,否則返回0
SELECT hasAny( [1,2,3,6,34,3,11] , [3,4])
7.hasAll
判斷數(shù)組中是否包含某些值中所有值,若包含則返回1涡拘,否則返回0
SELECT hasAll( [1,2,3,6,34,3,11] , [3,4])
8.arrayWithConstant
生成一個(gè)指定長度的數(shù)組
SELECT arrayWithConstant( 3, 'a')
三玲躯、切割/拼接
1.arrayStringConcat
將數(shù)組元素按照給定分隔符進(jìn)行拼接,返回拼接后的字符串(數(shù)組元素必須為String類型)
SELECT arrayStringConcat( ['2020','12','19'], '-')
2.arraySlice
對數(shù)組進(jìn)行切割 鳄乏,后面兩個(gè)參數(shù)分別是切割的位置和切割后的段數(shù)
SELECT arraySlice( [1,2,3,6,34,3,11],-3,2)
四跷车、排序
1.arraySort
對數(shù)組進(jìn)行升序
SELECT a from (SELECT arraySort([1,2,3,6,34,3,11]) as a)
2.arrayReverseSort
對數(shù)組進(jìn)行降序
SELECT a from (SELECT arrayReverseSort([1,2,3,6,34,3,11]) as a)
五、添加/刪除首尾元素
1.arrayPushFront
在數(shù)組首位添加元素
SELECT arrayPushFront( [1,2,3,6,34,3,11] , 8)
2.arrayPushBack
在數(shù)組末尾添加元素
SELECT arrayPushBack( [1,2,3,6,34,3,11] , 8)
3.arrayPopFront
刪除數(shù)組中第一個(gè)元素
SELECT arrayPopFront( [1,2,3,6,34,3,11] )
4.arrayPopBack
刪除數(shù)組中最后一個(gè)元素
SELECT arrayPopBack( [1,2,3,6,34,3,11] )
六橱野、計(jì)算差值
1.arrayDifference
計(jì)算數(shù)組中前后兩個(gè)值的差值部分朽缴,該位=當(dāng)前-前者(不包括第一個(gè)數(shù),結(jié)果第一位默認(rèn)為0)
SELECT arrayDifference( [1,2,3,6,34,3,11] )
2.runningDifference
計(jì)算某一列前后數(shù)值的差值水援,該位=當(dāng)前-前者(不包括第一個(gè)數(shù)密强,結(jié)果第一位默認(rèn)為0)
select a,runningDifference(a) from (SELECT arrayJoin( [1,2,3,6,34,3,11]) as a)