코딩 테스트 연습/[프로그래머스][리트코드] MySQL

[LV.4] 우유와 요거트가 담긴 장바구니

duswjd_data 2025. 7. 4. 09:40

문제

https://school.programmers.co.kr/learn/courses/30/lessons/62284

 

프로그래머스

SW개발자를 위한 평가, 교육의 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프

programmers.co.kr


문제 설명

  • 우유와 요거트를 동시에 구입한 장바구니의 아이디를 조회하는 SQL 문을 작성
  • 결과는 장바구니의 아이디 순으로 정렬

정답 코드

SELECT CART_ID
FROM CART_PRODUCTS
WHERE NAME IN ('Milk', 'Yogurt')
GROUP BY CART_ID
HAVING COUNT(DISTINCT NAME) = 2
ORDER BY CART_ID

코드 설명

 

  • WHERE NAME IN ('Milk', 'Yogurt')
    • Milk 또는 Yogurt만 필터링
  • GROUP BY CART_ID
    • 장바구니별로 그룹화
  • HAVING COUNT(DISTINCT NAME) = 2
    • 해당 장바구니에 Milk와 Yogurt가 모두 있는 경우만 남김
  • ORDER BY CART_ID
    • 문제 조건에 맞게 ID 순서대로 정렬

 


첫 번째 시도 (실패)

SELECT CART_ID
FROM CART_PRODUCTS
WHERE NAME IN ('Milk', 'Yogurt')
GROUP BY CART_ID
HAVING CART_ID >= 2
ORDER BY CART_ID

 

 

- Milk와 Yogurt 모두가 포함된 장바구니인지 확인할 수 없음