[SQL 고득점 Kit] 식품분류별 가장 비싼 식품의 정보 조회하기

썹스·2024년 3월 20일

❓ 문제

FOOD_PRODUCT 테이블에서 식품분류별로 가격이 제일 비싼 식품의 분류, 가격, 이름을 조회하는 SQL문을 작성해주세요. 이때 식품분류가 '과자', '국', '김치', '식용유'인 경우만 출력시켜 주시고 결과는 식품 가격을 기준으로 내림차순 정렬해주세요.

❗️ 문제 풀이

/*
조건1 : 식품분류별 가격이 제일 비싼 식품
조건2 : 식품분류가 '과자', '국', '김치', '식용유'인 경우만 출력
조건3 : 식품 가격을 기준으로 내림차순
*/

# 식품분류별 높은 가격 데이터 테이블
with tb as (
    select
        CATEGORY
        ,max(PRICE) as MAX_PRICE
    from FOOD_PRODUCT
    where 1=1
        and CATEGORY in ('과자', '국', '김치', '식용유')
    group by 1
)

select
    F.CATEGORY
    ,F.PRICE as MAX_PRICE
    ,F.PRODUCT_NAME
from tb, FOOD_PRODUCT as F
where 1=1
    and tb.CATEGORY = F.CATEGORY
    and tb.MAX_PRICE = F.PRICE
order by 2 desc

📚 느낀점

문제를 풀 때 서브쿼리, JOIN 방법 등의 다양한 방법이 존재하는데,
나의 경우 필요한 정보를 담은 가상 테이블을 만든 다음 기존 테이블과 조인하는 방법을 선호한다. (개인적으로 위 방법이 가독성이 높다고 생각하기 때문...)

하지만, 위 방법이 좋은 방법인지 아직은 잘 모르겠다.

SQL의 성능적인 부분을 고려하여 코드를 작성하는 연습과 공부가 필요하다는 생각이 드는 문제였다.



🔗 Reference

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

profile
코린이

0개의 댓글