- 문제설명
- 문제
- 풀이
1. 우유와 요거트를 동시에 구입 필터링 걸기(WHERE)
SELECT *
FROM CART_PRODUCTS
WHERE NAME IN('Yogurt', 'Milk')
2. 각 장바구니의 상품을 묶어서 확인해야함(GROUP BY)
SELECT CART_ID
FROM CART_PRODUCTS
WHERE NAME IN('Yogurt', 'Milk')
GROUP BY CART_ID
3. 각 CART_ID 별로 NAME의 고유값 개수를 세어 우유와 요거트가 둘 다 포함된 경우만 선택(HAVING COUNT)
SELECT CART_ID
FROM CART_PRODUCTS
WHERE NAME IN('Yogurt', 'Milk')
GROUP BY CART_ID
HAVING COUNT(DISTINCT NAME) = 2
👉 HAVING COUNT(DISTINCT NAME) = 2를 안쓰면 'Yogurt' 또는 'Milk' 중 하나라도 포함된 모든 CART_ID가 출력됨
4. CART_ID 기준으로 오름차순 정렬(ORDER BY)
SELECT CART_ID
FROM CART_PRODUCTS
WHERE NAME IN('Yogurt', 'Milk')
GROUP BY CART_ID
HAVING COUNT(DISTINCT NAME) = 2
ORDER BY CART_ID
- 실행결과
'빅데이터 공부 > SQL' 카테고리의 다른 글
[프로그래머스 / MySQL / Lv.3 특정 조건을 만족하는 물고기별 수와 최대 길이 구하기] (0) | 2025.03.12 |
---|---|
[프로그래머스 / MySQL / Lv.4 주문량이 많은 아이스크림들 조회하기] (0) | 2025.03.11 |
[프로그래머스 / MySQL / Lv.4 년, 월, 성별 별 상품 구매 회원 수 구하기] (2) | 2025.03.07 |
[프로그래머스 / MySQL / Lv.3 헤비 유저가 소유한 장소] (0) | 2025.03.06 |
[프로그래머스 / MySQL / Lv.4 저자 별 카테고리 별 매출액 집계하기] (0) | 2025.03.05 |