티스토리 뷰

1. ROW_NUMBER() - 역할

동일한 값이 있을 경우에도 무조건 순서대로 순번을 반환



2. ROW_NUMBER() - 기본 테이블

◈ TEST_TABLE_ONE


 IDX

NAME

ID

 DEPT

AMT

 1

테스트1

test1

 test_d1

1000

 2

테스트2

test2

 test_d1

2000

 3

테스트3

test3

 test_d2

 2000 

 4

테스트4

test4

 test_d2

 4000 

 5

테스트5

test5

 test_d2

 5000 



3. ROW_NUMBER() - SQL 문장1

◈ SQL

1
2
3
4
SELECT NAME
       ,AMT
       ,ROW_NUMBER() OVER(ORDER BY AMT DESCAS RNM
        FROM TEST_TABLE_ONE




◈ 결과 테이블


 NAME

AMT

RNM

테스트5

4000 

1

테스트4

3000 

2

테스트2

2000 

3

테스트3

2000 

4

테스트1

1000 

5


◈ 설명


 테스트2와 테스트3이 같은 2000 임에도 불구하고 ROW_NUMBER() 는 로우 순서대로 결과를 반환합니다




4. ROW_NUMBER() - SQL 문장2

◈ SQL

1
2
3
4
SELECT NAME
       ,AMT
       ,ROW_NUMBER() OVER(PARTITION BY DEPT ORDER BY AMT DESCAS RNM
        FROM TEST_TABLE_ONE




◈ 결과 테이블


 NAME

AMT

RNM

테스트2

2000 

1

테스트1

1000 

2

테스트5

4000 

1

테스트4

3000 

2

테스트3

2000 

3


◈ 설명


PARTITION BY 절을 이용하여 각 부서별로 AMT에 따른 순서를 반환합니다



댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday