在ClickHouse中比较两个数组的任何选项?
有两列colA
和colB
,每列包含一个数组。
如果有,在比较阵列的任何算法colA
和colB
对于每行中的一个ClickHouse表并设定colC
值1
如果阵列是相等的,0
如果阵列是不相等的?
例如:
colA | colB | colC
---------------------------------|----------------------------------|-----
{555,571,701,707,741,1470,4965} | {555,571,701,707,741,1470,4965} |1
{555,571,701,707,741,1470,4965} | {555,571,701,707,741,1470,4964} |0
我在ClickHouse Google Group上问了同样的问题,并从Denis Zhuravlev得到了以下答案:
在最新版本的CH 18.1.0,2018-07-23 (#2026)中:
select [111,222] A, [111,222] B, [111,333] C, A=B ab, A=C ac
结果是
┌─A─────────┬─B─────────┬─C─────────┬─ab─┬─ac─┐
│ [111,222] │ [111,222] │ [111,333] │ 1 │ 0 │
└───────────┴───────────┴───────────┴────┴────┘
在18.1.0之前,您可以使用lambda或其他方式:
SELECT
NOT has(groupArray(A = B), 0) ab
,NOT has(groupArray(A = C), 0) ac
FROM
(
SELECT
[111,222] A
,[111,222] B
,[111,333] C
)
ARRAY JOIN
A
,B
,C
┌─ab─┬─ac─┐
│ 1 │ 0 │
└────┴────┘
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句