选择具有两种类型postgresql的不同id

时间:2015-09-22 18:52:33

标签: sql postgresql distinct

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

数据如下:

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

我想选择只存在类型1的orderid。

我试过了:

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

这将返回orderid 1和2

2 个答案:

答案 0 :(得分:2)

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

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

答案 1 :(得分:2)

您可以使用group by

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

不需要distinctorderid只返回一次。