SQL задачи: функции ранжирования

ФУНКЦИИ НА ПРИМЕРАХ

ROW_NUMBER() - простая нумерация строк, каждая новая строка это + 1.

num 

row_number()

101

1

102

2

103

3

103

4

104

5

RANK() - если у строк одинаковое значение, то возвращается одинаковый ранг, но пропускается следующий ранг.

num 

rank()

101

1

102

2

103

3

103

3

104

5

DENSE_RANK() - если у строк одинаковое значение, то возвращается одинаковый ранг, следующий ранг идет по порядку и не пропускается в отличие от RANK().​​

num 

dense_rank()

101

1

102

2

103

3

103

3

104

4

percent_rank() - относительный ранг текущей строки: (rank - 1) / (общее число строк - 1)

num 

percent_rank()

101

0%

102

20%

103

40%

103

40%

104

80%

ntile() - разбивает строку на n групп и каждой присваивает номер группы в зависимости от расположения строки.

num 

ntile(3)

101

1

102

1

103

2

103

2

104

3