728x90
문제
데이터 분석 팀에서는 우유(Milk)와 요거트(Yogurt)를 동시에 구입한 장바구니가 있는지 알아보려 합니다. 우유와 요거트를 동시에 구입한 장바구니의 아이디를 조회하는 SQL 문을 작성해주세요. 이때 결과는 장바구니의 아이디 순으로 나와야 합니다.
정답
SELECT CART_ID
FROM CART_PRODUCTS
WHERE CART_ID IN (
SELECT CART_ID
FROM CART_PRODUCTS
WHERE NAME = "Yogurt"
GROUP BY CART_ID
) AND CART_ID IN (
SELECT CART_ID
FROM CART_PRODUCTS
WHERE NAME = "Milk"
GROUP BY CART_ID
HAVING COUNT(NAME) >=1
)
GROUP BY CART_ID
풀이
SELECT CART_ID
FROM CART_PRODUCTS
WHERE NAME = "Yogurt"
GROUP BY CART_ID
우유(Milk)와 요거트(Yogurt)를 동시에 구입한 장바구니를 알아보기 위해 우선 name에 Yogurt를 포함하고 있는 id를 찾습니다.
SELECT CART_ID
FROM CART_PRODUCTS
WHERE NAME = "Milk"
GROUP BY CART_ID
그 다음 Milk를 포함하고 있는 id를 찾고 AND로 연결해 주었습니다.
WHERE CART_ID IN (
SELECT CART_ID
FROM CART_PRODUCTS
WHERE NAME = "Yogurt"
GROUP BY CART_ID
) AND CART_ID IN (
SELECT CART_ID
FROM CART_PRODUCTS
WHERE NAME = "Milk"
GROUP BY CART_ID
)
AND로 두개를 연결하여 WHERE절을 통해 CART_ID를 찾아 GROUP BY를 하여 문제를 풀었습니다.
728x90
'프로그래머스 코딩테스트 > MySQL' 카테고리의 다른 글
[프로그래머스] 주문량이 많은 아이스크림들 조회하기 MySql (0) | 2024.09.05 |
---|---|
[프로그래머스] 조회수가 가장 많은 중고거래 게시판의 첨부파일 조회하기 MySQL (0) | 2024.09.05 |
[프로그래머스] 년, 월, 성별 별 상품 구매 회원 수 구하기 MySQL (0) | 2024.07.17 |
[프로그래머스] 취소되지 않은 진료 예약 조회하기 MySQL (0) | 2024.07.10 |
[프로그래머스] 조건에 부합하는 중고거래 상태 조회하기 MySQL (0) | 2024.07.09 |