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 | 31 |
Tags
- 프로그래머스 조회수가 가장 많은 중고거래 게시판의 첨부파일 조회하기
- 강원도에 위치한 생산공장 목록 출력하기 #프로그래머스 강원도에 위치한 생산공장 목록 출력하기 #프로그래머스 #경기도에 위치한 식품창고 목록 출력하기 #프로그래머스 경기도에 위치한 식
- 조건에 부합하는 중고거래 상태 조회하기
- 프로그래머스 #프로그래머스 5월 식품들의 총매출 조회하기 #5월 식품들의 총매출 조회하기
- 프로그래머스 조건에 맞는 사용자 정보 조회하기
- 조회수가 가장 많은 중고거래 게시판의 첨부파일 조회하기
- 프로그래머스 취소되지 않은 진료 예약 조회하기 #취소되지 않은 진료 예약 조회하기
- 프로그래머스 #프로그래머스 NULL 처리하기 #NULL 처리하기
- SQL #DDL
- 프로그래머스 #프로그래머스 헤비 유저가 소유한 장소 #헤비 유저가 소유한 장소
- 프로그래머스 조건에 맞는 사용자와 총 거래금액 조회하기
- 저자 별 카테고리 별 매출액 집계하기
- 프로그래머스 #오랜 기간 보호한 동물(2) #프로그래머스 오랜 기간 보호한 동물(2)
- 태블로 테이블 계산
- 프로그래머스 조건에 부합하는 중고거래 상태 조회하기
- 프로그래머스 조건에 부합하는 중고거래 댓글 조회하기
- 자동차 대여 기록에서 대여중 / 대여 가능 여부 구분하기
- 프로그래머스 #프로그래머스 입양 시각 구하기(2) #입양 시각 구하기(2) #프로그래머스 입양 시각 구하기(1) #입양 시각 구하기(1)
- 조건에 부합하는 중고거래 댓글 조회하기
- 프로그래머스 #프로그래머스 우유와 요거트가 담긴 장바구니 #우유와 요거트가 담긴 장바구니
- 대여 횟수가 많은 자동차들의 월별 대여 횟수 구하기 #프로그래머스 대여 횟수가 많은 자동차들의 월별 대여 횟수 구하기
- 조건에 맞는 사용자 정보 조회하기
- 조건에 맞는 사용자와 총 거래금액 조회하기
- 자동차 대여 기록 별 대여 금액 구하기
- 프로그래머스 #프로그래머스 서울에 위치한 식당 목록 출력하기 #서울에 위치한 식당 목록 출력하기
- 자동차 대여 기록에서 장기/단기 대여 구분하기 #프로그래머스 자동차 대여 기록에서 장기/단기 대여 구분하기
- 프로그래머스 #프로그래머스 중성화 여부 파악하기 #중성화 여부 파악하기
- 프로그래머스 #조건별로 분류하여 주문상태 출력하기 #프로그래머스 조건별로 분류하여 주문상태 출력하기
- 자동차 종류 별 특정 옵션이 포함된 자동차 수 구하기 #프로그래머스 자동차 종류 별 특정 옵션이 포함된 자동차 수 구하기
- 가격이 제일 비싼 식품의 정보 출력하기 #프로그래머스 가격이 제일 비싼 식품의 정보 출력하기 #프로그래머스 #식품분류별 가장 비싼 식품의 정보 조회하기 #프로그래머스 식품분류별 가장 비
Archives
- Today
- Total
데이터 분석
프로그래머스 - 그룹별 조건에 맞는 식당 목록 출력하기 (RANK, 서브쿼리) 본문
- RANK
- 서브쿼리
그룹별 조건에 맞는 식당 목록 출력하기
WHERE절에 서브쿼리를 사용하는 경우
- 이 서브쿼리의 결과가 1건 나오면 단일행으로 =, >, < 등을 메인쿼리와 연동한다.
- 이 서브쿼리 결과가 2건 이상 나오면 다중행으로 IN, ALL, ANY등으로 메인쿼리와 연동한다.
RANK
WINDOW 함수중 중 하나로 전체 테이블 중 내가 원하는 일부만 작은 테이블로 만들어 분석하는 과정이다.
RANK() OVER (PARTITION BY 컬럼 ORDER BY 컬럼)
PARTITION BY 는 분할 할 행 지정
ORDER BY 는 순위를 지정할 값
내가 푼 답
SELECT PRO.MEMBER_NAME, RE.REVIEW_TEXT, TO_CHAR(RE.REVIEW_DATE, 'YYYY-MM-DD') REVIEW_DATE
FROM MEMBER_PROFILE PRO JOIN REST_REVIEW RE
ON PRO.MEMBER_ID = RE.MEMBER_ID
WHERE PRO.MEMBER_ID IN (
SELECT MEMBER_ID
FROM (
SELECT MEMBER_ID, COUNT(*), RANK() OVER(ORDER BY COUNT(*) DESC) AS RANK
FROM REST_REVIEW
GROUP BY MEMBER_ID
ORDER BY COUNT(*) DESC
)
WHERE RANK = 1
)
ORDER BY REVIEW_DATE ASC, REVIEW_TEXT ASC
;
풀이
7~10번째 줄 서브쿼리 내용만 보면
MEMBER_ID별로 개수를 세서 RANK를 이용하여 등수를 매겼다.
https://school.programmers.co.kr/learn/courses/30/lessons/131124
'SQL > 프로그래머스 코딩' 카테고리의 다른 글
프로그래머스 - 가격대 별 상품 개수 구하기 (TRUNC) (0) | 2023.02.28 |
---|---|
프로그래머스 - 카테고리 별 상품 개수 구하기 (SUBSTR) (0) | 2023.02.28 |
프로그래머스 - 즐겨찾기가 가장 많은 식당 정보 출력하기 (서브쿼리) (0) | 2023.02.28 |
프로그래머스 - 3월에 태어난 여성 회원 목록 출력하기 (TO_CHAR) (0) | 2023.02.28 |
프로그래머스 - 서울에 위치한 식당 목록 출력하기 (LIKE, ROUND) (0) | 2023.02.28 |