Question
데이터 분석 팀에서는 우유(Milk)와 요거트(Yogurt)를 동시에 구입한 장바구니가 있는지 알아보려 합니다. 우유와 요거트를 동시에 구입한 장바구니의 아이디를 조회하는 SQL 문을 작성해주세요. 이때 결과는 장바구니의 아이디 순으로 나와야 합니다.
Pseudocode
- WHERE 절에서 필터링:
- cart_products 테이블에서 name이 'Milk' 또는 'Yogurt'인 상품이 있는 장바구니만 선택합니다.
- GROUP BY cart_id:
- 각 장바구니(cart_id)별로 그룹화합니다. 즉, 각 장바구니에 속한 상품들을 그룹으로 묶습니다.
- HAVING Count(DISTINCT( name )) = 2:
- 그룹화된 장바구니 중에서 'Milk'와 'Yogurt' 두 종류의 상품이 모두 있는 장바구니만 선택합니다.
- DISTINCT를 사용하여 동일한 상품이 여러 번 포함된 경우에도 한 번만 카운팅합니다.
- ORDER BY 1:
- 장바구니 ID(cart_id)를 기준으로 오름차순으로 정렬합니다.
Code
SELECT cart_id
FROM cart_products
WHERE name = 'Milk'
OR name = 'Yogurt'
GROUP BY cart_id
HAVING Count(DISTINCT( name )) = 2
ORDER BY 1'알고리즘 > SQL' 카테고리의 다른 글
| [프로그래머스] 주문량이 많은 아이스크림들 조회하기 (0) | 2024.09.19 |
|---|---|
| [프로그래머스] 대여 횟수가 많은 자동차들의 월별 대여 횟수 구하기 (0) | 2024.09.19 |
| [프로그래머스] 헤비 유저가 소유한 장소 (0) | 2024.09.19 |
| [프로그래머스] 저자 별 카테고리 별 매출액 집계하기 (0) | 2024.09.19 |
| [프로그래머스] 조회수가 가장 많은 중고거래 게시판의 첨부파일 조회하기 (0) | 2024.09.19 |
