>我有一个presto数组,无论数组中的值是什么,我都需要过滤掉奇数索引。
数组 = ['否', '物质', '什么', '是, '这里']
期望的结果 = ['物质', '是']
我已经尝试了很多不同的序列变体(2,基数(数组),2),但似乎没有任何效果。
我最终用我创建的索引数组压缩了数组
zip(ar, sequence(1, cardinality(ar), 1))
然后我在x -> x[2]%2=0
上过滤了x[2]
,只选择了x -> x[1]
TRANSFORM。
不同地方的其他一些建议是使用序数取消嵌套,过滤序数列,然后聚合回来。
另一种方法 - 生成仅需要的索引序列(对于偶数索引 - 从 2 开始并将步骤设置为 2)并在其上使用transform
:
WITH dataset(arr) AS ( values (array[1,2,3,4,5]) )
SELECT transform(sequence(2, cardinality(arr), 2), i -> arr[i])
FROM dataset
输出:
_col0 |
---|
[2, 4] |