Клиенты, которые купили точно 2 пункта - PullRequest
0 голосов
/ 29 марта 2020

У меня есть таблица с именем order_details, которая содержит 3 столбца order_id, customer_id и item_name

Мне нужно найти customer_id тех клиентов, которые купили Kindle и Alexa

Вот так выглядит моя таблица.

enter image description here

Это 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')

Заранее спасибо.

1 Ответ

1 голос
/ 29 марта 2020

Вы можете использовать агрегацию и предложение 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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...