Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- 데이터분석
- 오스트리아 비자
- 해시 샘플링
- 해외로 나가고 싶다
- SQL강의추천
- spark
- The running dream
- 하고싶은건 많고 세상도 넓고
- 프로모션분석
- 인과추론
- SQL
- CRM
- 해외로 떠나고 싶어요
- 그로스인턴
- 토이프로젝트
- 랜덤샘플링
- MBTMI
- 이중차분법
- 쿼리
- pyspark
- 런던쌤
- 생각정리
- 코로나 오스트리아 비자
- MySQL
- CRM 마케팅
- 이커머스데이터분석
- 맥북미러링
- 프로그래머스
- airscreen
- 실무 쿼리
Archives
- Today
- Total
Data, English, Travel
[프로그래머스 SQL 고득점 kit] 식품분류별 가장 비싼 식품의 정보 조회하기 본문
문제 바로가기 >> https://school.programmers.co.kr/learn/courses/30/lessons/131116
문제 요약
FOOD_PRODUCT
에서 식품 분류로 GROUP BY 한 후 가격이 제일 비싼 식품 찾아 조회한다.
WINDOW 함수로 식품 분류 별 비싼 식품을 찾을 수 있을 것 같다.
그 후 서브쿼리로 RANK == 1인 식품 필터링한다.
POINT : 윈도우 함수 사용법은 RANK() OVER (PARTITION BY ~ ORDER BY)
이다
문제 풀이
1) WINDOW 함수로 각 제품의 식품 분류 별 가격 순위를 뽑는다.
2) 그 후 카테고리에 IN() 으로 필터링을 사용한다
3) 위 결과를 FROM절 서브쿼리를 사용하여 RANKS=1인 제품만 뽑아내어 정렬한다.
SELECT
CATEGORY, PRICE, PRODUCT_NAME
FROM (
SELECT
CATEGORY, PRICE, PRODUCT_NAME,
RANK() OVER (PARTITION BY CATEGORY ORDER BY PRICE DESC) RANKS
FROM
FOOD_PRODUCT
WHERE
CATEGORY IN ('과자','국','김치','식용유')
) A
WHERE
RANKS = 1
ORDER BY 2 DESC
'Data > SQL' 카테고리의 다른 글
[프로그래머스 SQL 고득점 kit] 상품을 구매한 회원 비율 구하기 (0) | 2025.03.21 |
---|---|
[CRM 마케터의 SQL] SUM/MAX Case When 차이 (PV 집계 vs UV 집계) (0) | 2025.02.27 |
[프로그래머스 SQL 고득점 kit] 멸종위기의 대장균 찾기 (0) | 2025.02.05 |
[프로그래머스 SQL 고득점 kit] 연도별 대장균 크기의 편차 구하기 (0) | 2025.02.02 |
[프로그래머스 SQL 고득점 kit] 물고기 종류 별 대어 찾기 (0) | 2025.02.02 |