발전하는 나를 기록하기 위해

mysql 그룹별 상위 n개 출력하기 본문

개발

mysql 그룹별 상위 n개 출력하기

발폼도래 2022. 1. 5. 21:17
728x90

oracle 이나 mysql 이나 접근방식은 같다.

 

먼저 원하는 order 기준으로 select 문 작성

ex)

SELECT MST.*

            , ROW_NUMBER() OVER (PARTITION BY MST.STUD_NO ORDER BY ENTER_DT DESC) AS RNK

   FROM STUD_MST MST

 

작성한 쿼리를 인라인뷰로 넣어준다.

 

 SELECT *

    FROM (

                   작성쿼리

                )

  WHERE RNK <= N(원하는 갯수);

 

over() 사용하지 않고 GROUP BY로 묶어서 order by 주고 작성해도 결과는 같다.

 

inline veiw로 작성이되는 이유는 order by가 적용 순위가 밀리기 때문이다.

위 쿼리에선 from - where - select - order by  이정도 순서겠다.

'개발' 카테고리의 다른 글

운영 서버설정 반영 오류 / css(display, position, box-sizing)  (0) 2022.01.07
naver 검색 api 한글깨짐 현상  (0) 2022.01.06
놀래서 재택  (0) 2022.01.04
재택에 길들여진 나는  (0) 2022.01.03
22년의 첫번째 일요일  (0) 2022.01.02