프로그래머스 - 우유와 요거트가 담긴 장바구니 (MySQL)

조민수·약 10시간 전
0

Programmers

목록 보기
85/85

Lv4, SQL - INTERSECT


문제

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


풀이

  1. INTERSECT를 이용한 풀이
  • Yogurt를 가진 CART_IDMilk를 가진 CART_ID의 교집합을 구한다.
SELECT CART_ID FROM CART_PRODUCTS
WHERE NAME = 'Yogurt'

INTERSECT

SELECT CART_ID FROM CART_PRODUCTS
WHERE NAME = 'Milk'

ORDER BY CART_ID
  1. INTERSECT없이 풀이
  • Milk, Yogurt를 가진 CART_ID들 중 둘 이상 나온 값들을 구한다.
  • GROUP BY조건을 통해 묶었기 때문에 가능한 것
SELECT CART_ID FROM CART_PRODUCTS
WHERE NAME IN ('Milk', 'Yogurt')
GROUP BY CART_ID
HAVING COUNT(DISTINCT NAME) >= 2
ORDER BY CART_ID
profile
사람을 좋아하는 Front-End 개발자

0개의 댓글