SQL

[항해99 14기 온보딩] SQL 실습과제 - 프로그래머스 SQL 고득점 Kit lv4~5

seulki_lim 2023. 3. 25. 19:22

프로그래머스 SQL 고득점 Kit - lv4~5

1. 보호소에서 중성화한 동물

  • https://school.programmers.co.kr/learn/courses/30/lessons/59045
  • 보호소에서 중성화 수술을 거친 동물 정보를 알아보려 합니다. 보호소에 들어올 당시에는 중성화1되지 않았지만, 보호소를 나갈 당시에는 중성화된 동물의 아이디와 생물 종, 이름을 조회하는 아이디 순으로 조회하는 SQL 문을 작성해주세요.
SELECT I.ANIMAL_ID, I.ANIMAL_TYPE, I.NAME FROM ANIMAL_INS I
INNER JOIN ANIMAL_OUTS O ON I.ANIMAL_ID = O.ANIMAL_ID
WHERE I.SEX_UPON_INTAKE LIKE 'Intact%' 
AND (O.SEX_UPON_OUTCOME LIKE 'Spayed%' OR O.SEX_UPON_OUTCOME LIKE 'Neutered%')
ORDER BY I.ANIMAL_ID ASC;

2. 5월 식품들의 총매출 조회하기

  • https://school.programmers.co.kr/learn/courses/30/lessons/131117
  • FOOD_PRODUCT와 FOOD_ORDER 테이블에서 생산일자가 2022년 5월인 식품들의 식품 ID, 식품 이름, 총매출을 조회하는 SQL문을 작성해주세요. 이때 결과는 총매출을 기준으로 내림차순 정렬해주시고 총매출이 같다면 식품 ID를 기준으로 오름차순 정렬해주세요.
SELECT P.PRODUCT_ID, P.PRODUCT_NAME, P.PRICE*A.AMOUNT AS TOTAL_SALES FROM FOOD_PRODUCT P
INNER JOIN (SELECT PRODUCT_ID, SUM(AMOUNT) AS AMOUNT FROM FOOD_ORDER
            WHERE PRODUCE_DATE LIKE '2022-05%'
            GROUP BY PRODUCT_ID) A ON A.PRODUCT_ID = P.PRODUCT_ID
ORDER BY TOTAL_SALES DESC, P.PRODUCT_ID ASC;

3. 식품분류별 가장 비싼 식품의 정보 조회하기

  • https://school.programmers.co.kr/learn/courses/30/lessons/131116
  • FOOD_PRODUCT 테이블에서 식품분류별로 가격이 제일 비싼 식품의 분류, 가격, 이름을 조회하는 SQL문을 작성해주세요. 이때 식품분류가 '과자', '국', '김치', '식용유'인 경우만 출력시켜 주시고 결과는 식품 가격을 기준으로 내림차순 정렬해주세요.
SELECT CATEGORY, PRICE AS MAX_PRICE, PRODUCT_NAME FROM FOOD_PRODUCT
WHERE PRICE IN(
    SELECT MAX(PRICE) FROM FOOD_PRODUCT
    GROUP BY CATEGORY
) AND CATEGORY IN ('과자', '국', '김치', '식용유')
ORDER BY PRICE DESC;

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

  •  https://school.programmers.co.kr/learn/courses/30/lessons/62284
  • 데이터 분석 팀에서는 우유(Milk)와 요거트(Yogurt)를 동시에 구입한 장바구니가 있는지 알아보려 합니다. 우유와 요거트를 동시에 구입한 장바구니의 아이디를 조회하는 SQL 문을 작성해주세요. 이때 결과는 장바구니의 아이디 순으로 나와야 합니다.
SELECT C.CART_ID FROM CART_PRODUCTS C
WHERE C.NAME = 'Milk'
AND C.CART_ID IN (
    SELECT CART_ID FROM CART_PRODUCTS
    WHERE NAME = 'Yogurt')
ORDER BY CART_ID ASC;