우유와 요거트가 담긴 장바구니

수이·2025년 4월 3일
0

🟢 코드카타 / SQL

목록 보기
65/81

데이터 분석 팀에서는 우유(Milk)와 요거트(Yogurt)를 동시에 구입한 장바구니가 있는지 알아보려 합니다. 우유와 요거트를 동시에 구입한 장바구니의 아이디를 조회하는 SQL 문을 작성해주세요. 이때 결과는 장바구니의 아이디 순으로 나와야 합니다.
문제링크

조건정리

  1. 우유와 요거트 동시에 구입
  2. 아이디 조회
  3. 장바구니 아이디 순 정렬

풀이

SELECT CART_ID
FROM CART_PRODUCTS
GROUP BY CART_ID
HAVING SUM(CASE WHEN NAME = 'Milk' THEN 1 ELSE 0 END) > 0 
       AND SUM(CASE WHEN NAME = 'Yogurt' THEN 1 ELSE 0 END) > 0
ORDER BY CART_ID

어.. 또 쓸 데 없이 장황하게 계산을 한 것 같긴 한데..😅 CASE WHEN 어쩌구 THEN 1 ELSE 0 END 하는 방식이 멋져보여서 함 써봤다

쉽게 풀면 그냥 WHERE절에서 IN쓰면 뚝딱

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

0개의 댓글

관련 채용 정보