
문제
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 모두가 포함된 장바구니인지 확인할 수 없음
'코딩 테스트 연습 > [프로그래머스][리트코드] MySQL' 카테고리의 다른 글
| [LV.5] JOIN > 주문량이 많은 아이스크림들 조회하기 (2) | 2025.07.08 |
|---|---|
| [LV.5] String, Date > 조회수가 가장 많은 중고거래 게시판의 첨부파일 조회하기 (1) | 2025.07.07 |
| [LV.4] 헤비 유저가 소유한 장소 (0) | 2025.07.03 |
| [LV.4] String, Date > 자동차 평균 대여 기간 구하기 (3) | 2025.07.02 |
| [LV.4] String, Date > 자동차 대여 기록에서 장기/단기 대여 구분하기 (1) | 2025.07.01 |