본문 바로가기
SQL

프로그래머스 가격이 제일 비싼 식품의 정보 출력하기(MySQL)

by 창따오 2024. 1. 2.
728x90

출처: https://school.programmers.co.kr/learn/courses/30/lessons/131115

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

-- 코드를 입력하세요
#SELECT *
#FROM FOOD_PRODUCT 
#WHERE PRICE = MAX(PRICE) /SQL 실행 중 오류가 발생하였습니다.Invalid use of group function

SELECT * FROM 
FOOD_PRODUCT
WHERE PRICE IN(SELECT MAX(PRICE) FROM FOOD_PRODUCT);
#WHERE PRICE = 도 가능!

 

작성한 SQL쿼리문을 보면 일반적으로 간단히 생각했을 때, 가격이 가장 비싼상품이니까 주석문과 같이 작성하는 사람이 분명 있을 것이라 예상한다. 하지만 오류문구를 직역해보면 집계함수(sum, max, min 등등)의 사용이 타당하지 않다는 뜻이다. 

# 집계 함수
COUNT(집합)    # 행 개수
SUM(집합)      # 합계
AVG(집합)      # 평균
MIN(집합)      #최소 값
MAX(집합)      # 최대 값

그래서 대게 집계함수는 SELECT절에서 많이 사용하게 됨을 명심하자.