SQL:搜索字符串集

时间:2019-01-23 10:48:20

标签: sql postgresql

在具有用户ID和服装项目ID的表中,每个用户拥有的每个项目都有单独的一行。

如何分类一组具有特定服装项目的用户?

user_id item_id

1_cph   345 
10_brl  653 
5_cph   345 
2_brl   546 
1_cph   321 
1_cph   235 
1_cph   890 
1_cph   345 
2_brl   321 
2_brl   235 
2_brl   890 
2_brl   345 


Item ID search list:

321     
235     
890     

问题:哪些用户拥有这三个项目?

预期产量
1_cph
2_brl

1 个答案:

答案 0 :(得分:2)

尝试一下

Select user_id -- take the user id
from yourtable
where item_id in ('id_item1', 'id_item2', 'id_item3') --that has these items
group by user_id --just 1 report entry per ID
having count(distinct item_id) >= 3 -- it has at least all the items listed

您可以使用having count(distinct item_id)> 2让搜索至少3个项目中的2个的人