Как найти пересечение двух столбцов-массивов

У меня есть два массива (Int32) -columns, есть ли способ сравнить их и получить столбец с пересечением этих двух массивов?

Я думаю о функции arrayMap, но, похоже, это неэффективный подход.

Пример данных:

id     col1      col2     col3
1   [1, 2, 3] [2, 3, 5]  [2, 3]
...........

person Dmitry Bevz    schedule 01.06.2021    source источник


Ответы (1)


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

SELECT
    [1, 2, 3] AS a,
    [2, 3, 5] AS b,
    arrayIntersect(a, b)

┌─a───────┬─b───────┬─arrayIntersect([1, 2, 3], [2, 3, 5])─┐
│ [1,2,3] │ [2,3,5] │ [3,2]                                │
└─────────┴─────────┴──────────────────────────────────────┘
person Denny Crane    schedule 01.06.2021
comment
Спасибо, в документации не нашел - person Dmitry Bevz; 02.06.2021