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;
不需要distinct
。 orderid
只返回一次。
我有可以有两种类型的 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;
不需要distinct
。 orderid
只返回一次。