SQL/[프로그래머스] SQL 고득점 Kit

[프로그래머스] SQL 기출문제

HSY_mumu 2023. 10. 23. 14:33
728x90

헤비 유저가 소유한 장소(Lv. 3)

SELECT ID, NAME, HOST_ID
FROM PLACES
WHERE HOST_ID IN (
    SELECT HOST_ID
    FROM PLACES
    GROUP BY HOST_ID
    HAVING COUNT(ID) >= 2
)

우유와 요거트가 담긴 장바구니(Lv. 4)

  1. WITH
-- 1. 우유나 요거트를 구매한 장바구니 아이디 조회
WITH TMP AS (
    SELECT CART_ID
    FROM CART_PRODUCTS
    WHERE NAME IN ('Milk', 'Yogurt')
    GROUP BY CART_ID, NAME
)
-- 2. 우유와 요거트를 동시에 구입한 장바구니 아이디 조회
SELECT CART_ID
FROM TMP
GROUP BY CART_ID
HAVING COUNT(*) = 2
ORDER BY CART_ID;
  1. 서브쿼리
-- 2. 우유와 요거트를 동시에 구입한 장바구니 아이디 조회
SELECT CART_ID
FROM (
        -- 1. 우유나 요거트를 구매한 장바구니 아이디 조회
    SELECT CART_ID
    FROM CART_PRODUCTS
    WHERE NAME IN ('Milk', 'Yogurt')
    GROUP BY CART_ID, NAME
) AS A
GROUP BY CART_ID
HAVING COUNT(*) = 2
ORDER BY CART_ID;
728x90