【发布时间】:2018-11-29 07:52:38
【问题描述】:
我有一个红移表 (user_group),看起来像
user_id | group_id
--------+---------
1 | 1
1 | 2
2 | 1
2 | 3
3 | 2
3 | 3
4 | 4
编写返回属于任意组子集 (group_id) 的所有用户 (user_id) 的查询的最佳方法是什么?
现在,我被黑的查询如下,我只是根据需要添加/删除WHERE 过滤器:
SELECT DISTINCT user_id
FROM
user_group
WHERE
user_id IN (SELECT DISTINCT user_id FROM user_group WHERE group_id = 1)
AND user_id IN (SELECT DISTINCT user_id FROM user_group WHERE group_id = 5)
...
而且,感觉应该有更好的方法?
【问题讨论】:
-
你想看到什么输出?
-
我的退货集中只需要
user_id。我想过滤整个数据集,只针对我目前正在过滤的所有group_ids 中的用户。例如,在我列出的同一个查询中,我正在查找 bothgroup_id1 和group_id5 中的所有user_ids。这有帮助吗?
标签: sql amazon-web-services amazon-redshift