爱Clickhouse中的数组!
目前,我们正在尝试设计一个解决方案,该解决方案要求我们查找array2中的元素是否存在于array2中,而与顺序无关。
例如
array1= ['x','y','z']
array2= ['a','x','c']
Then the return that we want is [1,0,0]
提前致谢!
试试这个查询:
SELECT
['x', 'y', 'z'] AS a1,
['a', 'x', 'c'] AS a2,
arrayMap(x -> has(a2, x), a1) AS result
/*
┌─a1────────────┬─a2────────────┬─result──┐
│ ['x','y','z'] │ ['a','x','c'] │ [1,0,0] │
└───────────────┴───────────────┴─────────┘
*/
该解决方案看起来无效,但也应进行检查:
SELECT
['x', 'y', 'z'] AS a1,
['a', 'x', 'c'] AS a2,
arrayIntersect(a1, a2) AS a3,
arrayMap(x -> has(a3, x), a1) AS result
/*
┌─a1────────────┬─a2────────────┬─a3────┬─result──┐
│ ['x','y','z'] │ ['a','x','c'] │ ['x'] │ [1,0,0] │
└───────────────┴───────────────┴───────┴─────────┘
*/
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句