SQL 고득점 Kit - 9.10

김동현·2024년 9월 11일

SQL 고득점 Kit

목록 보기
52/56

Summer/Winter Coding(2019) - 우유와 요거트가 담긴 장바구니

문제

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

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

풀이

WITH cart AS (
    SELECT *
    FROM CART_PRODUCTS
    WHERE NAME IN ('Yogurt', 'Milk')
    GROUP BY CART_ID, NAME -- 중복되는 제품을 통일
)

SELECT CART_ID
FROM cart
GROUP BY CART_ID
HAVING COUNT(*) >= 2    
-- WITH절에서 이미 그룹화를 통해서 각각 다른 제품으로 분류하여 2이상이라면 2개의 제품을 동시에 구매한 카드로 판단할 수 있음

리뷰

  • 요거트와 우유가 담긴 장바구니를 그룹화를 통해서 우유가 여러 개인 카트를 통일한 CTE 생성
  • 카트의 ID를 그룹화해서 카운트가 2라면 우유, 요거트 총 2가지 제품을 가지고 있다.

GitHub

우유와 요거트가 담긴 장바구니
https://github.com/lasentia/SQL_Study/tree/main/%ED%94%84%EB%A1%9C%EA%B7%B8%EB%9E%98%EB%A8%B8%EC%8A%A4/4/62284.%E2%80%85%EC%9A%B0%EC%9C%A0%EC%99%80%E2%80%85%EC%9A%94%EA%B1%B0%ED%8A%B8%EA%B0%80%E2%80%85%EB%8B%B4%EA%B8%B4%E2%80%85%EC%9E%A5%EB%B0%94%EA%B5%AC%EB%8B%88

profile
'The best way to get started is to quit talking and begin doing.'

0개의 댓글