Notice
Recent Posts
Recent Comments
Link
«   2024/12   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31
Tags more
Archives
Today
Total
관리 메뉴

데이터 분석

프로그래머스 - 가격이 제일 비싼 식품의 정보 출력하기, 식품분류별 가장 비싼 식품의 정보 조회하기 (서브쿼리) 본문

SQL/프로그래머스 코딩

프로그래머스 - 가격이 제일 비싼 식품의 정보 출력하기, 식품분류별 가장 비싼 식품의 정보 조회하기 (서브쿼리)

시니조 2023. 2. 28. 13:49
  • MAX
  • WHERE절에 서브쿼리

 

가격이 제일 비싼 식품의 정보 출력하기

WHERE절에 서브쿼리를 사용하는 경우

 

  • 이 서브쿼리의 결과가 1건 나오면 단일행으로  =, >, < 등을 메인쿼리와 연동한다.
  • 이 서브쿼리 결과가 2건 이상 나오면 다중행으로 IN, ALL, ANY등으로 메인쿼리와 연동한다.

 

SELECT * 
FROM FOOD_PRODUCT
WHERE PRICE = (
    SELECT MAX(PRICE)
    FROM FOOD_PRODUCT
    )
;

PRICE의 최댓값은 결과가 1건 나오기 떄문에 = 을 사용한다.

 

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

 

프로그래머스

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

programmers.co.kr

 

 

 

 

식품분류별 가장 비싼 식품의 정보 조회하기

 

SELECT CATEGORY, PRICE MAX_PRICE, PRODUCT_NAME
FROM FOOD_PRODUCT
WHERE (CATEGORY, PRICE) IN (
    SELECT CATEGORY, MAX(PRICE) PRICE
    FROM FOOD_PRODUCT
    WHERE CATEGORY IN ('과자', '국', '김치', '식용유')
    GROUP BY CATEGORY
    )
ORDER BY MAX_PRICE DESC
;

 

4~8번쨰 줄 서브쿼리의 내용만 실행하면

다음과 같이 카테고리 별 최대 PRICE를 구해준다.

 

결과가 (CATEGORY, PRICE) 로 2건 이상 나기 떄문에 서브쿼리와 메인쿼리를 연동할 때 IN을 사용해서 연결한다. 

 

 

 

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

 

프로그래머스

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

programmers.co.kr