如何找到两个数组列的交集

Dmi*_*evz 1 clickhouse

我有两个数组(Int32)列,有什么方法可以比较它们并获取这两个数组的交集的列?

我正在考虑 arrayMap 函数,但这似乎是无效的方法。

示例数据:

id     col1      col2     col3
1   [1, 2, 3] [2, 3, 5]  [2, 3]
...........
Run Code Online (Sandbox Code Playgroud)

Den*_*ane 5

https://clickhouse.tech/docs/en/sql-reference/functions/array-functions/#array-functions-arrayintersect

\n
SELECT\n    [1, 2, 3] AS a,\n    [2, 3, 5] AS b,\n    arrayIntersect(a, b)\n\n\xe2\x94\x8c\xe2\x94\x80a\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\xac\xe2\x94\x80b\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\xac\xe2\x94\x80arrayIntersect([1, 2, 3], [2, 3, 5])\xe2\x94\x80\xe2\x94\x90\n\xe2\x94\x82 [1,2,3] \xe2\x94\x82 [2,3,5] \xe2\x94\x82 [3,2]                                \xe2\x94\x82\n\xe2\x94\x94\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\xb4\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\xb4\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x98\n
Run Code Online (Sandbox Code Playgroud)\n