프로그래머의 삶 Programmer's Life/Database-Oracle&MySQL

RANK() OVER() 와 ROW_NUMBER() OVER() 와의 차이

Oliver's World 2012. 4. 20. 11:30
728x90

rank() over(PARTITION BY xxxx ORDER BY yyyy )

 

할 경우에는 xxxx에 따른 yyyy sorting에서 yyyy가 같을 경우에는 동일한 랭킹으로 부여 된다.

 

즉,

 

xxxx     yyyyy    ranking

1            1           1

1            2           2

1            2           2

1            2           2

1            3           5

1            4           6

 

 

row_number() over(PARTITION BY xxxx ORDER BY yyyy )

할 경우에는 xxxx에 따른 yyyy sorting에서 yyyy가 같을 경우에도 row_number 에 따라 순차적으로 랭킹이 부여 된다.

즉,

xxxx     yyyyy    r anking

1            1            1

1            2            2

1            2            3

1            2            4

1            3            5

1            4            6

 

 

row_number 로 soring 할 경우에는 기준값이 동일할 경우에도 row별로 번호를 부여하므로 동일한 값의 경우

어떻게 sorting 을 할지를 좀 더 세부적으로 추가 되어야 하겠다.

728x90