【发布时间】:2021-01-26 04:15:24
【问题描述】:
给定一组product_ids,只有有那些product_ids的order_ids是什么?
对于下面的示例,我只想要具有(a,b,c) 某种组合的 order_id。我有 2 个如下表:
“交易”表:
order_id | product_id |
---------+-------------
1 | a |
1 | b |
2 | a |
2 | X |
3 | a |
3 | b |
3 | c |
... | ... |
999 | Y |
“产品”表:
product_id |
------------
a |
b |
c |
d |
X |
Y |
... |
ZZZ |
Desired Output 有 2 个带有预期表输出的 order_id:
order_id |
----------
1 |
3 |
注意order_id == 2 已被删除,虽然它有product_id == a,但因为它有product_id == X,所以它应该被删除。
因此这并不简单:
SELECT DISTINCT(order_id)
FROM transactions
WHERE product_id IN (a, b, c)
【问题讨论】:
-
与您的问题无关,但是:
distinct不是一个函数。它始终适用于选择列表中的所有列。用括号括住其中一列不会改变任何东西并且是无用的。distinct (a),b与distinct a,(b)或distinct a,b相同
标签: sql postgresql amazon-redshift relational-division