clickhouse数组查询

clickhouse array query

我在 table 中有一个数据类型为 Array(Int32) 的列。要查询数组中的项目,我使用以下查询。

select count(id) from user where has(array,2);

如何查询数组中的多个元素? Clickhouse 中有 in 查询吗?

我想要如下所述的查询

select count(id) from user where has(array,2) or has(array,3)

我从未使用过 clickhouse,但我认为有一种解决方法可以检查数组是否包含给定的所有条目。

select count(id) 
from user 
where arrayUniq(arrayConcat(array, [2, 3])) = arrayUniq(array)

如果你想检查是否有一个或多个条目,我认为会像:

select count(id) 
from user 
where arrayUniq(arrayConcat(array, [2, 3])) < length(arrayConcat(array, [2, 3]))

hasAll 函数检查一个数组是否是另一个数组的子集。