프로그래머스 SQL 고득점 Kit - 가격이 제일 비싼 식품의 정보 출력하기

Jinyoung Cheon·2024년 12월 21일
0

코딩테스트

목록 보기
9/25

프로그래머스 SQL 고득점 Kit
https://school.programmers.co.kr/learn/challenges?tab=sql_practice_kit

SELECT

problem

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

task

  1. FOOD_PRODUCT 테이블에서
FROM FOOD_PRODUCT
  1. 가격이 제일 비싼 식품의
WHERE PRICE = (SELECT MAX(PRICE) FROM FOOD_PRODUCT)
  1. 식품 ID, 식품 이름, 식품 코드, 식품분류, 식품 가격을 조회
SELECT PRODUCT_ID, PRODUCT_NAME, PRODUCT_CD, CATEGORY, PRICE

code

SELECT PRODUCT_ID, PRODUCT_NAME, PRODUCT_CD, CATEGORY, PRICE

FROM FOOD_PRODUCT

WHERE PRICE = (SELECT MAX(PRICE) FROM FOOD_PRODUCT)

note

집계함수의 사용에 대해 다시 생각해보는 계기가 됨.

# 틀린 코드 
SELECT PRODUCT_ID, PRODUCT_NAME, PRODUCT_CD, CATEGORY, MAX(PRICE)

FROM FOOD_PRODUCT

💡
집계함수는 여러 행에서 계산을 수행하고 단일 값을 반환.
해당 쿼리는 MAX(PRICE)는 집계함수를 사용함으로써 가장 높은 가격이 나오지만 나머지 PRODUCT_ID, PRODUCT_NAME, PRODUCT_CD, CATEGORY는 MAX(PRICE)를 PRICE로 가지는 ROW 정보들이 아닐 수 있음.

Then ?

ORDER BY를 활용하여 풀 수도 있다.

SELECT *
FROM FOOD_PRODUCT
ORDER BY PRICE DESC
LIMIT 1 
profile
데이터를 향해, 한 걸음씩 천천히.

0개의 댓글