티스토리 뷰

1. RANK() , DENSE_BANK() - 역할

순위를 반환하는 함수


2. RANK() , DENSE_BANK() - 기본 테이블

◈ 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. RANK() - SQL 문장

◈ SQL

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




◈ 결과 테이블


 

 NAME

AMT

AMT_RNK

테스트5

4000 

1

테스트4

3000 

2

테스트2

2000 

3

테스트3

2000 

3

테스트1

1000 

5


◈ 설명


 AMT 금액이 많은 순서로 순위를 정하여 보여주고 있습니다


 테스트2,테스트3은 같은 금액이라서 같은 순위가 나왔고 이어서 4위가 없이 테스트1은 5위로 나타냅니다

 


4. DENSE_RANK() - SQL 문장

◈ SQL

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



◈ 결과 테이블



 NAME

AMT

AMT_RNK

테스트5

4000 

1

테스트4

3000 

2

테스트2

2000 

3

테스트3

2000 

3

테스트1

1000 

4



◈ 설명



  마찬가지로 AMT 금액이 많은 순서로 순위를 정하여 보여주고 있습니다


 RANK() 와 다른 점이 있다면 RANK()는 공동 순위가 있을 경우 다음에 나올 순위를 건너 뛰는   데 DENSE_RANK()는 건너 뛰지 않고 위에서 보는 것처럼 4위가 나타나게 됩니다





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