오랑우탄의 반란
LeetCode 리트코드 | 1045. Customers Who Bought All Products (MySQL) 본문
반응형
오늘도 오랑이는 문제를 풉니다.
1045. Customers Who Bought All Products
풀이 과정
Customer 테이블에서 customer_id 기준으로 정렬했을 때의 product_key 와 Product 테이블의 product_key 가 일치한 경우 customer_id 를 출력하는 쿼리가 필요합니다.
이때 Product 테이블의 값은 모두 distinct 한 값이란 점을 감안하면, customer_id 기준 각 product_key 의 개수와 Product 테이블 값의 개수가 일치한다는 말로 해석할 수 있습니다.
그러면 이제 쿼리는 완료입니다.
우선 customer_id 기준으로 group 하고 count 에 대한 조건을 having 절 안에 넣어줍니다.
이때 Customer 테이블의 count에 대해서는 distinct 를 붙여주는 것을 잊지 않습니다.
최종 코드
select customer_id from Customer
group by customer_id
having count(distinct product_key) = (select count(product_key) from Product)
오랑우탄이 영어를 하고 오랑이가 쿼리마스터가 되는 그날까지~
https://leetcode.com/problems/customers-who-bought-all-products/description/
반응형