您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

Postgres使用条件将所有数组值匹配到同一列---已更新

Postgres使用条件将所有数组值匹配到同一列---已更新

您需要为一个ID汇总所有event_id:

select id
from table_a
group by id
having array_agg(event_id) @> array[101,103];

@>是操作者包含所以它会检查是否所有的event_ids数组包含与这两个ID的数组。

这将返回 至少 具有两个事件101和103(这是您在问题中要求的)的任何id 。

如果你想找到那些有ID的 这两个event_ids(其中您的样本数据中不包含),你可以使用:

select id
from table_a
group by id
having array_agg(distinct event_id order by event_id) = array[101,103];

请注意,数组中元素的顺序对=运算符很重要(与“ contains”@>运算符不同)

Postgres 2022/1/1 18:42:07 有325人围观

撰写回答


你尚未登录,登录后可以

和开发者交流问题的细节

关注并接收问题和回答的更新提醒

参与内容的编辑和改进,让解决方法与时俱进

请先登录

推荐问题


联系我
置顶