[프로그래머스/MySQL] Lv. 1 가장 비싼 상품 구하기 (SUM, MAX, MIN)

2024. 10. 17. 20:40·[ Computer Science ]/Database_sql

0. 문제 소개

출처 : 프로그래머스 

언어 : MySQL 

제목 : 가장 비싼 상품 구하기

레벨 : Lv1

분류 : SUM, MAX, MIN

https://school.programmers.co.kr/learn/courses/30/lessons/131697

 

프로그래머스

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

programmers.co.kr

 

 

1. 문제 조건 및 요구사항

문제 )

PRODUCT 테이블에서 판매 중인 상품 중 가장 높은 판매가를 출력하는 SQL문을 작성해주세요.

이때 컬럼명은 MAX_PRICE로 지정해주세요.

 

문제 조건 )

다음은 어느 의류 쇼핑몰에서 판매 중인 상품들의 정보를 담은 PRODUCT 테이블입니다. 

PRODUCT 테이블은 아래와 같은 구조로 되어있으며, 

PRODUCT_ID, PRODUCT_CODE, PRICE는 각각 상품 ID, 상품코드, 판매가를 나타냅니다.

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

 

출력 조건 )

 

2. 정답 풀이

PRODUCT 테이블에서 판매 중인 상품 중 (select할 레코드가 속한 테이블을 from으로 명시)

가장 높은 판매가를 출력하는 SQL문 (select 판매가 + 가장 높은 것이므로 출력할 값은 가장 커야 하고, 하나여야 함)

이때 컬럼명은 MAX_PRICE로 지정해주세요. (출력에 사용할 컬럼명 지정)

 

2-1. LIMIT문 사용

SELECT PRICE AS MAX_PRICE
FROM PRODUCT
WHERE PRICE
ORDER BY PRICE DESC
LIMIT 1;

가격을 출력하되 내림차순으로 정렬하면 

맨 윗쪽부터 가장 높은 가격순으로 정렬된다

 

그 상황에서 하나만 출력하도록 Limit로 제한하면

맨 위에 위치한 가장 높은 가격 하나만 출력할 수 있다

 

2-2. WHERE문 사용

SELECT PRICE AS MAX_PRICE
FROM PRODUCT
WHERE PRICE  = (SELECT MAX(PRICE) FROM PRODUCT) ;
# ORDER BY PRICE DESC ;

정렬하는 코드는 불필요하기 때문에

주석처리 해두긴 했지만 쓰는 건 오히려 비효율적이다

 

중첩 WHERE문으로 

PRODUCT 테이블에서 MAX 가격을 선택해서 받고 

그것을 출력하기 때문에 이미 선택 대상의 행이 하나라 

가장 바깥 SELECT문에 대해 개수를 제한하거나 정렬할 필요가 없다

 

 

728x90

'[ Computer Science ] > Database_sql' 카테고리의 다른 글

[Database/midterm] SQL 문법 기초  (12) 2024.10.19
[Database/midterm] 데이터베이스 설계 (개념적, 논리적)  (3) 2024.10.19
[Database/MySQL] 실습을 위한 초기 데이터 생성  (6) 2024.10.17
[프로그래머스/MySQL] Lv. 1 평균 일일 대여 요금 구하기 (SELECT)  (8) 2024.10.17
[프로그래머스/MySQL] Lv. 1 역순 정렬하기 (SELECT)  (1) 2024.10.17
[프로그래머스/MySQL] Lv. 1 아픈 동물 찾기 (SELECT)  (1) 2024.10.17
[Database/MySQL] 데이터베이스와 테이블 생성 후 조회하기 ( error 1046, error 1049, err 1065 )  (4) 2024.10.01
'[ Computer Science ]/Database_sql' 카테고리의 다른 글
  • [프로그래머스/MySQL] Lv. 1 평균 일일 대여 요금 구하기 (SELECT)
  • [프로그래머스/MySQL] Lv. 1 역순 정렬하기 (SELECT)
  • [프로그래머스/MySQL] Lv. 1 아픈 동물 찾기 (SELECT)
  • [Database/MySQL] 데이터베이스와 테이블 생성 후 조회하기 ( error 1046, error 1049, err 1065 )
dev charlotte
dev charlotte
주 - 컴퓨터공학 / 복수 - 산업 보안
    250x250
  • dev charlotte
    int main() {
    dev charlotte
  • 전체
    오늘
    어제
    • 분류 전체보기
      • [ Laboratory ]
        • Paper review
        • Advanced Operating System
        • System Software & Storage
        • Lab etc
      • [ Computer Science ]
        • Algorithm_C++
        • Operating System
        • Information Retrieval
        • Database_sql
        • SW Engineering
        • Computer Network
        • JavaScript
        • Python
        • Data Structure
        • CS study
        • Distributed systems
      • [ Computer Security ]
        • Convergence Security
        • Web Security
        • PIMS
        • Network Security
        • Digital Finance
      • [ Artificial Intelligence ]
        • Trend
        • Seminar
      • [ 미래, 같이, LG ]
      • [ Development ]
        • [ Front-end ]
        • [ Back-end ] Spring 기본
        • [ Back-end ] Node.js
      • etc
      • It's me
  • 블로그 메뉴

    • 링크

      • GitHub
    • 공지사항

    • 인기 글

    • 태그

      hotstorage
      백준
      고성능 스토리지 캐시 시스템
      싸피
      open cas
      자바스크립트
      프로그래머스 코테
      SQL 쿼리
      오블완
      spdk
      SSAFY
      프로그래밍 언어론
      코드잇
      order by
      티스토리챌린지
      코딩 인강
      SQL
      부트캠프
      프로그래머스
      비전공자 코딩
      ssafy 13기
      hotstorage 2023
      소프트웨어 공학
      BOJ
      데이터베이스
      스토리지 캐시
      MySQL
      프로그래머스 c++
      프로그래머스 입문
      싸피 13기
    • 최근 댓글

    • 최근 글

    • hELLO· Designed By정상우.v4.10.4
    dev charlotte
    [프로그래머스/MySQL] Lv. 1 가장 비싼 상품 구하기 (SUM, MAX, MIN)
    상단으로

    티스토리툴바