【发布时间】:2021-04-05 04:23:48
【问题描述】:
我想从一组订单中只选择标有特定类型的订单。
例子:
假设我有一张桌子 X。
Order Type
123 A
123 B
123 C
234 A
234 C
345 B
456 C
456 A
567 A
567 B
就我而言,我只想选择那些同时包含 A 和 B 的订单:
Order Type
123 A
123 B
123 C
567 A
567 B
到目前为止我的工作:
WITH FIRST AS (
SELECT DISTINCT ID
FROM X
WHERE TYPE = 'A'),
SECOND AS (
SELECT DISTINCT ID
FROM X
WHERE TYPE = 'B'
)
SELECT *
FROM X
WHERE Order IN ( SELECT DISTINCT FIRST.ID
FROM FIRST
JOIN SECOND
ON FIRST.ID = SECOND.ID);
但是,我不喜欢这种解决方案。有更好的方法吗?
【问题讨论】: