首页 > 解决方案 > 如何找到两个数组列的交集

问题描述

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

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

示例数据:

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

标签: clickhouse

解决方案


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]                                │
└─────────┴─────────┴──────────────────────────────────────┘

推荐阅读