코딩테스트연습/[프로그래머스] Oracle

[프로그래머스] Oracle Lv.1 - 가장 비싼 상품 구하기

_꼬마돌 2023. 8. 23. 19:28
반응형

[프로그래머스] Oracle Lv.1 - 가장 비싼 상품 구하기

문제 출처

https://school.programmers.co.kr/learn/courses/30/lessons/131697?language=oracle 

 

프로그래머스

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

programmers.co.kr

 

문제

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

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

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

풀이

이전에 풀었던 동물병원 문제랑 비슷하다.
문제에서 컬럼명을 MAX_PRICE로 지정하라고 해서 AS를 사용해서 지정해줬다.
서브쿼리에서 PRODUCT 테이블의 모든 열을 PRICE의 내림차순으로 가져오도록 하고, 
본 쿼리의 WHERE절에서 서브쿼리에서 불러온 데이터의 첫 번째 행만을 불러오도록 했다.  

 

2023.08.21 [프로그래머스] Oracle - 상위 n개 레코드

 

[프로그래머스] Oracle - 상위 n개 레코드

[프로그래머스] Oracle - 상위 n개 레코드 문제 출처 https://school.programmers.co.kr/learn/courses/30/lessons/59405?language=oracle 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의

tiny-stone.com

FETCH에 대한 내용은 여기에서 자세히 다뤘다.

 

소스코드

SELECT PRICE AS MAX_PRICE
FROM (
    SELECT *
    FROM PRODUCT
    ORDER BY PRICE DESC
    )
WHERE ROWNUM = 1;

또는

SELECT PRICE AS MAX_PRICE
FROM PRODUCT
ORDER BY PRICE DESC
FETCH FIRST ROW ONLY;
반응형