Sql 购买了2件商品的客户

Sql 购买了2件商品的客户,sql,postgresql,Sql,Postgresql,我有一个名为order\u details的表,其中包含3列order\u id、customer\u id和item\u name 我需要找到同时购买Kindle和Alexa的客户的客户ID 这就是我的桌子的样子 以下是供您参考的DML和DDL命令: create table personal.order_details( order_id varchar(10), customer_id varchar(10), item_name varchar(10)) insert into per

我有一个名为order\u details的表,其中包含3列order\u id、customer\u id和item\u name

我需要找到同时购买Kindle和Alexa的客户的客户ID

这就是我的桌子的样子

以下是供您参考的DML和DDL命令:

create table personal.order_details(
order_id varchar(10),
customer_id varchar(10),
item_name varchar(10))

insert into personal.order_details values
('1000','C01','Alexa'),
('1000','C01','Kindle'),
('1001','C02','Alexa'),
('1002','C03','Alexa'),
('1002','C03','Kindle')

提前感谢。

您可以使用聚合和having子句:

select od.customer_id
from personal.order_details od
where od.item_name in ('Alexa', 'Kindle')    -- rows that have either
group by od.customer_id
having count(distinct od.item_name) = 2;     -- customers that have both