Today I Learned
[내일배움캠프_데이터분석] 2주차 수요일 TIL _ Where절
journal201
2024. 7. 3. 21:25
A. 어떤 문제가 있었는지
: SQL 코드카타의 '가격이 제일 비싼 식품의 정보 출력' 문제 풀이 시 집계 함수를 중심으로 정보 출력이 안되었다.
MAX(PRICE)를 기준으로 다른 항목의 값이 출력되지 않았다.
문제 설명 |
다음은 식품의 정보를 담은 FOOD_PRODUCT 테이블입니다. FOOD_PRODUCT 테이블은 다음과 같고, PRODUCT_ID, PRODUCT_NAME, PRODUCT_CD, CATEGORY, PRICE는 식품 ID, 식품 이름, 식품 코드, 식품분류, 식품 가격을 의미합니다. |
Column name | Type | Nullable |
PRODUCT_ID | VARCHAR(10) | FALSE |
PRODUCT_NAME | VARCHAR(50) | FALSE |
PRODUCT_CD | VARCHAR(10) | TRUE |
CATEGORY | VARCHAR(10) | TRUE |
PRICE | NUMBER | TRUE |
B. 내가 시도해본 것
: PRICE를 기준으로 그룹 생성, FROM 절에 서브쿼리를 생성하여 전체 정보 중 가장 비싼 항목만을 선택하였다.
SELECT PRODUCT_ID, PRODUCT_NAME, PRODUCT_CD,CATEGORY,MAX(PRICE) PRICE
FROM FOOD_PRODUCT
PRODUCT_ID | PRODUCT_NAME | PRODUCT_CD | CATEGORY | PRICE |
P0001 | 맛있는라면 | CD_ND00001 | 면 | 19000 |
C. 어떻게 해결했는지
: SQL WHERE절에 서브쿼리를 생성하여 해결하였다.
SELECT PRODUCT_ID, PRODUCT_NAME, PRODUCT_CD,CATEGORY, PRICE
FROM FOOD_PRODUCT
WHERE (SELECT MAX(PRICE) FROM FOOD_PRODUCT) = PRICE
PRODUCT_ID | PRODUCT_NAME | PRODUCT_CD | CATEGORY | PRICE |
P0051 | 맛있는배추김치 | CD_KC00001 | 김치 | 19000 |
D. 무엇을 새롭게 알았는지
WHERE 절에 서브쿼리를 사용할 수 있다.
서브쿼리 : SQL문 내부에 사용되는 SELECT 문을 의미한다.
SELECT문: 데이터베이스로부터 데이터를 조회하기 위한 SQL 명령어
특정 테이블의 모든 데이터를 조회하거나 특정 열만을 선택하여 조회 가능.