https://school.programmers.co.kr/learn/courses/30/lessons/131116
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
문제
FOOD_PRODUCT 테이블에서 식품분류별로 가격이 제일 비싼 식품의 분류, 가격, 이름을 조회하는 SQL문을 작성해주세요. 이때 식품분류가 '과자', '국', '김치', '식용유'인 경우만 출력시켜 주시고 결과는 식품 가격을 기준으로 내림차순 정렬해주세요.
틀린 코드
SELECT CATEGORY,max(PRICE) as MAX_PRICE,PRODUCT_NAME
from FOOD_PRODUCT
where CATEGORY In ('과자', '국', '김치','식용유')
group by CATEGORY
order by MAX_PRICE desc
정답
SELECT CATEGORY,PRICE as MAX_PRICE, PRODUCT_NAME
from FOOD_PRODUCT
where price in (
select max(price)
from FOOD_PRODUCT
group by CATEGORY)
and CATEGORY In ('과자', '국', '김치','식용유')
order by MAX_PRICE desc
틀린 이유: max로 조회하면 해당 컬럼에 대한 값만 나올뿐 행 전체가 나오지 않는다. 그래서 서브 쿼리로 걸러주고 조회해야한다.
1. 서브쿼리로 카테고리별 가격이 비싼 식품을 조회한다
2. where CATEGORY In () 구문으로 원하는 분류를 설정한다
반응형
'Algorithm > 프로그래머스' 카테고리의 다른 글
[프로그래머스] SQL 문제풀이 - 조건에 맞는 도서 리스트 출력하기 (2) | 2023.01.04 |
---|---|
[프로그래머스] SQL 문제풀이 - 흉부외과 또는 일반외과 의사 목록 출력하기 (0) | 2023.01.04 |
[프로그래머스] SQL 문제풀이 - 년, 월, 성별 별 상품 구매 회원 수 구하기 (0) | 2023.01.03 |
[프로그래머스] SQL 문제풀이 - 카테고리 별 도서 판매량 집계하기 (0) | 2023.01.02 |
[프로그래머스] SQL 문제풀이 - 성분으로 구분한 아이스크림 총 주문량 (0) | 2023.01.02 |
댓글