gpt4 book ai didi

sql - Postgres 中的记录交集

转载 作者:行者123 更新时间:2023-12-04 00:16:52 25 4
gpt4 key购买 nike

假设我有多个与它们关联的商店的标签,如下所示:

label_id | store_id
--------------------
label_1 | store_1
label_1 | store_2
label_1 | store_3
label_2 | store_2
label_2 | store_3
label_3 | store_1
label_3 | store_2

在 SQL(或 jooq)中有什么好的方法来获取标签交集处的所有商店 ID?意思是只返回上面示例中的 store_2,因为 store_2 与 label_1、label_2 和 label_3 相关联?我想要一个通用的方法来处理我有 n 个标签的情况。

最佳答案

这是一个关系划分问题,您希望商店具有所有可能的标签。这是一种使用聚合的方法:

select store_id
from mytable
group by store_id
having count(*) = (select count(distinct label_id) from mytable)

请注意,这假定没有重复的 (store_id, label_id) 元组。否则,您需要将 having 子句更改为:

having count(distinct label_id) = (select count(distinct label_id) from mytable)

关于sql - Postgres 中的记录交集,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63081593/

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