ROW_NUMBER를 이용한 순번 매기기
출력된 데이터에 대한 순번을 매기고 싶을 때 주로 사용하는 방법이다. 특히 페이징 처리에서도 많이 사용하고 있으며 그 외 순서를 나타내기 위해서 주로 사용한다.
우선 예로 다음과 같은 데이터가 존재한다고 가정한다.
NAME |
DATE |
조서방 |
2010-01-01 |
김서방 |
2011-01-01 |
박서방 |
2015-01-01 |
임서방 |
2009-01-01 |
기본적으로 SELECT를 해오면 위와 같은 형태로 출력이 될 것이다. 여기에 날짜를 가지고 ORDER BY를 하게되면 내림차순 또는 오름차순으로 정렬이 된다.
SELECT
NAME, DATE
FROM
TABLE
ORDER BY DATE DESC ;
여기까지는 좋다. 그런데 정렬을 시켰는데 순번을 알고 싶다. 이럴 때 사용하는 함수가 ROW_NUMBER 함수이다. 사용하는 방법은 아래와 같다.
SELECT
ROW_NUMBER() OVER(ORDER BY DATE DESC) AS RNUM
, NAME
, DATE
FROM
TABLE ;
ROW_NUMBER() OVER를 이용하여 날짜에 대해서 내림차순 또는 오름차순으로 정렬을 하게되면 순번을 출력할 수 있다.
RNUM | NAME |
DATE |
1 | 박서방 |
2015-01-01 |
2 | 김서방 |
2011-01-01 |
3 | 조서방 |
2010-01-01 |
4 | 임서방 |
2009-01-01 |
위와 같은 방식으로 순번을 출력하며 꼭 날짜를 기준으로 하지않고 다양한 컬럼을 이용하여 순번을 매길 수 있으니 참고하면 된다.
관련글 더 보기
2018/08/27 - [SQL] 문자열 변환 오류 해결방법 (java.sql.SQLException)
2018/08/23 - [SQL] 쿼리문 합치는 방법 (UNION, UNION ALL)
2018/08/23 - [SQL] 집계함수 사용방법 (SUM, AVG, COUNT, MAX, MIN 함수)
↓ 공감 을 눌러주시면 블로거에게 큰 힘이 됩니다 !
'공부 이야기' 카테고리의 다른 글
[MSSQL] 지정날짜 반환하는 방법 (DATEPART 함수) (0) | 2018.08.28 |
---|---|
[MSSQL] 날짜 및 시간 차이 구하는 방법 (DATEDIFF 함수) (0) | 2018.08.28 |
[MSSQL] 날짜 범위 비교, 두가지 방법 ! (0) | 2018.08.28 |
[JAVA] 자바란 무엇인가? 특징을 알아보자 ! (0) | 2018.08.27 |
[엑셀] 특정 셀로 다양하게 이동하는 방법 (0) | 2018.08.27 |