Lv2 - 가격이 제일 비싼 식품의 정보 출력하기

2025. 7. 21. 13:34·CODING TEST/MySQL

📌 문제 정보

- 문제 이름 : 프로그래머스 - (SUM, MAX, MIN) 가격이 제일 비싼 식품의 정보 출력하기

- 문제 링크 : https://school.programmers.co.kr/learn/courses/30/lessons/131115

 

 

 

📌 문제 요약

- FOOD_PRODUCT 테이블 : PRODUCT_ID(식품 ID), PRODUCT_CD(식품 이름), CATEGORY(식품 분류), PRICE(식품 가격)

- FOOD_PRODUCT 테이블에서 가격이 제일 비싼 식품의 식품 ID, 식품 이름, 식품 코드, 식품 분류, 식품 가격을 조회하는 SQL문 작성

 

예시)

PRODUCT_ID  PRODUCT_NAME  PRODUCT_CD  CATEGORY  PRICE
P0018  맛있는고추기름  CD_OL00008  식용유  6100
P0019  맛있는카놀라유  CD_OL00009  식용유  5100
P0020 맛있는산초유  CD_OL00010  식용유  6500
P0021  맛있는케첩  CD_OL00001  소스  4500
P0022  맛있는마요네즈  CD_OL00002  소스  4700

 

출력)

PRODUCT_ID  PRODUCT_NAME  PRODUCT_CD CATEGORY  PRICE
P0020  맛있는산초유 CD_OL00010  식용유  6500

 

 

 

📌 내 풀이 및 코드

SELECT PRODUCT_ID, PRODUCT_NAME, PRODUCT_CD, CATEGORY, PRICE 
FROM FOOD_PRODUCT
ORDER BY PRICE DESC		-- PRICE를 기준으로 내림차순 (=가장 비싼 순)
LIMIT 1;				-- 맨 위 1개의 행만 가져옴

- MAX로 풀었었는데 그걸 활용하려면 서브쿼리 개념을 알아야 했음. 근데 몰라서 힌트를 받고 다른 방식으로 제출함.

 

** 서브쿼리 방식의 답 **

SELECT PRODUCT_ID, PRODUCT_NAME, PRODUCT_CD, CATEGORY, PRICE	-- 메인쿼리
FROM FOOD_PRODUCT
WHERE PRICE = (
    SELECT MAX(PRICE)		-- 서브쿼리 : 테이블 전체에서 가장 큰 가격값 구함
    FROM FOOD_PRODUCT
);

 

 

 

📌 새로 배운 문법

<-- 이번 문제에서 새로 배운 Java 문법 정리 -->

** 서브쿼리 (Subquery) **

- () 안에 들어있는 SELECT문을 서브쿼리라고 함.

- 하나의 값 or 행/열을 반환하고 WHERE(가장 많이 씀), FROM(인라인 뷰 or 파생 테이블), SELECT절(드물다) 어디든 들어갈 수 있음.

-- 기본 문법
SELECT ...
FROM 테이블
WHERE 컬럼 = (
    SELECT ...
    FROM 다른_또는_같은_테이블
    WHERE ...
);

-- 1. WHERE 절에서 쓰는 서브쿼리
SELECT *
FROM FOOD_PRODUCT
WHERE PRICE = (
    SELECT MAX(PRICE)	-- 가격 최대값 반환
    FROM FOOD_PRODUCT
);

-- 2. FROM절에서 쓰는 서브쿼리
SELECT avg_table.CATEGORY, avg_table.AVG_PRICE
FROM (
    SELECT CATEGORY, AVG(PRICE) AS AVG_PRICE
    FROM FOOD_PRODUCT
    GROUP BY CATEGORY
) AS avg_table;

-- 3. SELECT절에서 쓰는 서브쿼리
SELECT 
    PRODUCT_ID,
    PRODUCT_NAME,
    (SELECT MAX(PRICE) FROM FOOD_PRODUCT) AS MAX_PRICE
FROM FOOD_PRODUCT;

'CODING TEST > MySQL' 카테고리의 다른 글

Lv2 - 중성화 여부 파악하기  (0) 2025.07.21
Lv2 - 중복 제거하기  (0) 2025.07.21
Lv2 - 카테고리 별 상품 개수 구하기  (0) 2025.07.20
Lv2 - 이름에 el이 들어가는 동물 찾기  (0) 2025.07.20
Lv2 - 동명 동물 수 찾기  (0) 2025.07.19
'CODING TEST/MySQL' 카테고리의 다른 글
  • Lv2 - 중성화 여부 파악하기
  • Lv2 - 중복 제거하기
  • Lv2 - 카테고리 별 상품 개수 구하기
  • Lv2 - 이름에 el이 들어가는 동물 찾기
iamyuunzo
iamyuunzo
https://github.com/iamyuunzo
  • iamyuunzo
    iamyuunzo
    iamyuunzo
  • 전체
    오늘
    어제
    • 분류 전체보기 (94)
      • Study (5)
        • App Developer (0)
        • Algorithm study (0)
        • Google AI Essentials (3)
      • Project (3)
        • 감행 (3)
        • Tokkit (0)
        • 다시, 봄 (0)
        • Clone Coding (0)
      • 자격증 모음 (5)
        • AWS Certification (1)
        • 정보처리기사 (0)
        • 빅데이터분석기사 (1)
        • TOEIC Speaking (3)
      • CODING TEST (79)
        • baekjoon (26)
        • programmers (20)
        • MySQL (31)
        • COS Pro (2)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

    • github
  • 공지사항

  • 인기 글

  • 태그

    우리fis아카데미
    COS Pro
    프로젝트 리팩토링
    토익 스피킹
    SQL
    감행
    baekjoon
    AWS Certified Cloud Practitioner
    프로그래머스
    AWS Certification
    클라우드서비스개발
    회고록
    Programmers
    백준
    우리 fisa
    CLF-C02
    우리fisa
    java
    toeic speaking
    회고
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
iamyuunzo
Lv2 - 가격이 제일 비싼 식품의 정보 출력하기
상단으로

티스토리툴바