프로그래머스 SQL 고득전 kit를 풀어보고 정리한 내용입니다.
맞춘 정답과 틀린 경우 생각해내지 못한 문법 위주로 작성하였습니다.
정리 내용 출처는 아래를 참고해 주세요.
Lv.4 식품분류별 가장 비싼 식품의 정보 조회하기
작성 답안
SELECT 구문을 두번 사용한다.
카테고리가 "과자", "국", "김치", "식용유"에 해당하는 경우 카테고리 별로 묶어서(그룹화)
해당 카테고리(식품 분류)와 각 카테고리별 최고금액을 출력한다.
다음으로 카테고리와 가격이 위에서 출력한 결과값에 해당하는 경우 즉, 카테고리에 해당하는 내용 중 최고 가격의 식품의 카테고리와 가격, 제품명을 출력한다.
-- PRICE와 PRODUCT_NAME가 일치하지 않는 문제를 해결하려면 어떻게 해야 할까?
-- WHERE 문에서 두 항목을 묶어보자
SELECT
CATEGORY,
PRICE as MAX_PRICE,
PRODUCT_NAME
FROM FOOD_PRODUCT
-- 2. 매핑된 조건에 맞는 CATEGORY, PRICE를 FOOD_PRODUCT에서 찾게 되므로, 이것에 이어지는 PRODUCT_NAME도 저절로 나온다
WHERE (CATEGORY, PRICE) IN (
-- 1. 카테고리별 '카테고리:최대가격'이 매핑된 상태로 추출된다.
SELECT
CATEGORY,
MAX(PRICE)
FROM FOOD_PRODUCT
WHERE CATEGORY IN ('과자', '국', '김치', '식용유')
GROUP BY CATEGORY )
ORDER BY 2 DESC;
'SQL' 카테고리의 다른 글
[SQL] 프로그래머스 - JOIN / 5월 식품들의 총매출 조회하기 (0) | 2024.04.17 |
---|---|
[SQL] 프로그래머스 고득점 kit - GROUP BY / 가격대 별 상품 개수 구하기 (0) | 2024.04.17 |
[SQL] 프로그래머스 kit - String, Date / 대여 기록이 존재하는 자동차 리스트 구하기 (0) | 2024.04.11 |
[SQL] 프로그래머스 고득점 kit - String, Date / 루시와 엘라 찾기 (0) | 2024.04.10 |
[SQL] 프로그래머스 고득점 kit - SELECT / 조건에 맞는 도서 리스트 출력하기 (0) | 2024.04.10 |