1. 문제목적
그룹 함수(MAX)와 서브쿼리를 사용하여 특정 조건에 맞는 데이터를 효율적으로 조회하는 방법을 학습하는 것이다. 특히, 가장 큰 값(또는 작은 값)을 찾고 해당 데이터를 출력하는 SQL 작성 방법을 익히는 데 중점을 둔다.
2. 핵심개념
MAX 함수
- 정의: 특정 컬럼의 최대값을 반환하는 집계 함수
SELECT MAX(컬럼명)
FROM 테이블명;
- 활용 예시:
- 가장 비싼 상품의 가격을 찾을 때 사용.
서브쿼리
- 정의: 하나의 쿼리 안에 포함된 또 다른 쿼리.
- 사용 방법:
SELECT 컬럼명 FROM 테이블명 WHERE 컬럼명 = (SELECT MAX(컬럼명) FROM 테이블명);
- 서브쿼리는 메인 쿼리에서 조건에 맞는 데이터를 필터링하거나 계산된 값을 제공.
- 특징:메인 쿼리와 연계하여 동적으로 값을 계산하거나 필터링 가능.
- 서브쿼리는 괄호로 감싸서 작성.
(3) SELECT문
- 정의: 특정 테이블에서 데이터를 조회하기 위한 SQL문.
SELECT 컬럼명
FROM 테이블명
WHERE 조건;
3. 문제해결 절차
- 요구사항 분석:
- FOOD_PRODUCT 테이블에서 가격(PRICE)이 가장 높은 제품의 모든 정보를 출력.
- 조건에 맞는 데이터를 찾기 위해 MAX 함수를 사용.
- 접근 방법:
- 서브쿼리를 사용하여 가격의 최대값(MAX(PRICE))을 찾는다.
- 메인 쿼리에서 서브쿼리의 결과를 조건으로 사용하여 해당 제품의 정보를 조회.
- 단계적 설계:
- 1단계: MAX 함수를 사용해 가장 비싼 제품의 가격을 서브쿼리로 계산.
- 2단계: 메인 쿼리에서 서브쿼리의 결과를 이용해 조건을 적용.
- 3단계: 최종적으로 SELECT문을 통해 모든 정보를 출력.
4. 코드작성
sql
복사편집
-- 가격이 제일 비싼 식품의 정보를 출력하는 SQL
SELECT
PRODUCT_ID, -- 제품 ID
PRODUCT_NAME, -- 제품 이름
PRODUCT_CD, -- 제품 코드
CATEGORY, -- 카테고리
PRICE -- 제품 가격
FROM
FOOD_PRODUCT -- FOOD_PRODUCT 테이블에서 조회
WHERE
PRICE = ( -- 가격이 가장 높은 제품만 조회
SELECT MAX(PRICE) -- FOOD_PRODUCT 테이블에서 최대 가격을 계산
FROM FOOD_PRODUCT
);
5. 코드분석
(1) MAX 함수
- SELECT MAX(PRICE) FROM FOOD_PRODUCT:서브쿼리로 사용하여 최대 가격을 조건으로 필터링.
- FOOD_PRODUCT 테이블에서 가격(PRICE)의 최대값을 계산.
(2) 서브쿼리
- WHERE PRICE = (SELECT MAX(PRICE) FROM FOOD_PRODUCT):
- 서브쿼리를 활용하여 메인 쿼리에서 PRICE가 최대값인 레코드만 필터링.
(3) SELECT문
- SELECT PRODUCT_ID, PRODUCT_NAME, PRODUCT_CD, CATEGORY, PRICE:최대 가격에 해당하는 제품의 상세 정보를 반환.
- FOOD_PRODUCT 테이블에서 요구된 모든 컬럼을 출력.
'SQL Kit > SUM,MAX,MIN' 카테고리의 다른 글
최솟값 구하기 [ 프로그래머스 | SQL Kit | Level 2 ] (0) | 2025.03.05 |
---|---|
연도별 대장균 크기의 편차 구하기 [ 프로그래머스 | SQL Kit | Level 2 ] (0) | 2025.03.05 |
잡은 물고기 중 가장 큰 물고기의 길이 구하기 [ 프로그래머스 | SQL Kit | Level 1 ] (0) | 2025.03.03 |
최댓값 구하기 [ 프로그래머스 | SQL Kit | Level 1 ] (0) | 2025.03.03 |
가장 비싼 상품 구하기 [ 프로그래머스 | SQL Kit | Level 1 ] (0) | 2025.03.03 |