본문 바로가기
Language/DB

[Programmers | SQL | 집계함 문제 풀이] 가장 비싼 상품 구하기 - Solution with MAX

by ㅇ달빛천사ㅇ 2024. 6. 9.
728x90

KDT 실무형 스프링 백엔드 엔지니어 양성과정 6기 | SQL CODEKATA

💎 가장 비싼 상품 구하기

🏷 관련 주제 : 집계함수 SUM MAX MIN


문제 설명

다음은 어느 의류 쇼핑몰에서 판매 중인 상품들의 정보를 담은 PRODUCT 테이블입니다.
PRODUCT 테이블은 아래와 같은 구조로 되어있으며, PRODUCT_ID, PRODUCT_CODE, PRICE는 각각 상품 ID, 상품코드, 판매가를 나타냅니다.


Column name Type Nullable
PRODUCT_ID INTEGER FALSE
PRODUCT_CODE VARCHAR(8) FALSE
PRICE INTEGER FALSE

상품 별로 중복되지 않는 8자리 상품코드 값을 가지며, 앞 2자리는 카테고리 코드를 의미합니다.

문제

PRODUCT 테이블에서 판매 중인 상품 중 가장 높은 판매가를 출력하는 SQL문을 작성해주세요.
이때 컬럼명은 MAX_PRICE로 지정해주세요.

예시

예를 들어 PRODUCT 테이블이 다음과 같다면

PRODUCT_ID PRODUCT_CODE PRICE
1 A1000001 10000
2 A2000005 9000
3 C1000006 22000

가장 높은 판매가는 22,000 원 이므로, 다음과 같은 결과가 나와야 합니다.

MAX_PRICE
22000


✔ (ORACLE) Solution with MAX

SELECT MAX(PRICE) 
FROM PRODUCT;
실행 결과

✔ (MYSQL) Solution with MAX

SELECT MAX(PRICE) MAX_PRICE
FROM PRODUCT;
실행 결과

💥 오늘 만난 문제 & 나의 시도 💦 & 해결 방법 👍

📌 오늘 만난 문제 : 테이블에서 판매 중인 상품 중 가장 높은 판매가 컬럼명을 MAX_PRICE로 지정해서 출력하시오.


1. PRODUCT테이블의 PRICE칼럼에서 가장 높은 값 조회하기

SELECT MAX(PRICE) 
FROM PRODUCT;
실행 결과

2. 위에서 조회한 칼럼에 별칭을 MAX_PRICE로 주어 조회하기

SELECT MAX(PRICE) MAX_PRICE 
FROM PRODUCT;
실행 결과


처음에 예전에 썼던 코드를 보니
WHERE절에 서브쿼리로 PRICE = (SELECT MAX(PRICE) FROM PRODUCT)라고 썼던데

SELECT PRICE MAX_PRICE 
FROM PRODUCT 
WHERE PRICE = (SELECT MAX(PRICE) 
               FROM PRODUCT);

왜 이렇게 썼지? 하는 생각이 들어서 코드를 간단히 고쳐보았다.
서브쿼리에 넣었던 코드만 써서 제출을 해 보니 성공이라고 떴다.
SQL 쿼리도 계속 쓰다보니 예전의 비효율적인 코드가 눈에 더 잘 띄는 것 같다.
그리고 그동안 ORACLE SQL 문법으로만 코드를 작성해 보았는데
내일배움캠프에서는 MYSQL을 배우는 것 같아서 MYSQL로도 코드를 작성해 보았다.
앞에 작성했던 문제들도 MY SQL문법으로 다시 써 보고 싶다.


💬 무엇을 새롭게 알았는지

MYSQL 쿼리 작성해 보기

  • MYSQL에서는 별칭을 줄 때, 따옴표("")를 쓰지 않아도 대소문자를 구분하는 것 같다.
728x90