gpt4 book ai didi

arrays - 空数组情况下的 postgres 数组重叠运算符 (&&)

转载 作者:行者123 更新时间:2023-11-29 11:49:48 25 4
gpt4 key购买 nike

我正在运行以下查询。 (&&) 运算符用于过滤具有任何重叠数组元素的结果集,如果我有一个非空数组,它工作正常,但如果是空数组,则结果集为空,这可以被推理出来,但可以是一个空数组在这种情况下被视为通用集可能类似于 array && ({*}::int[]) 我想知道是否有解决此类问题的方法。

select  pm.id,
sum(c.density) as score
from
metadata pm,
unnest(pm.dimen_one_id::int[], pm.dimen_one_density::float[]) as c(id, density)
where
c.id = any('{1}'::int[])
group by
pm.pin_id,
pm.dimen_one_id,
pm.dimen_two_id,
pm.dimen_three_id
having
pm.dimen_two_id && '{36,37,38}'::int[] and
pm.dimen_three_id && '{23}'::int[]
order by
score desc
limit
10
offset
0

最佳答案

select count(*) from table_name where (cardinality(array::bigint[]) = 0) or (col_name && array::bigint[]);

其中 array 是实际的数组。

关于arrays - 空数组情况下的 postgres 数组重叠运算符 (&&),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36256907/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com