Select 不同的 id 有两种类型的 postgresql

Select distinct id with two types postgresql

我有可以有两种类型的 orderid,我需要 select 不同的 orderid 只有一种存在。

数据看起来像:

orderid 1 type 1
orderid 1 type 2
orderid 2 type 1
orderid 2 type 1 

我想要 select 只有类型 1 存在的 orderid。

我试过了:

select distinct orderid from orders where type=1 and type<>2

这将同时返回 orderid 1 和 2

您可以使用 except 来执行此操作。

select orderid from orders where type = 1 
except
select orderid from orders where type <> 1 

您可以使用 group by:

select orderid
from orders
group by orderid
having min(type) = 1 and max(type) = 1;

不需要distinctorderid 只返回一次。