Oracle - Функции RANK() и DENSE_RANK() (Или учимся выбирать необходимые значения внутри множественной выборки)
Начнем с функции RANK(). С объяснения для чего она и в каких случаях она нам может пригодиться.
Функция RANK() — это очень полезная функция, она позволяет нам пронумеровать набор по некоторому группирующему значению внутри всего выбранного набора данных. Проще всего показать это на примере. Для этого создадим небольшую таблицу:
ID PERSON DT SM
1 Роман 01.10.2016 11:51:31 545.3
2 Роман 01.10.2016 11:51:31 445.2
3 Роман 01.10.2016 11:51:31 145.3
4 Кирил 01.05.2016 16:51:31 99.5
5 Алена 01.07.2016 12:51:31 445.3
6 Роман 01.12.2016 16:51:31 876.1
7 Кирил 01.06.2016 16:51:31 237.22
8 Алена 01.12.2016 16:51:31 145.3
9 Алена 01.02.2016 14:51:31 534.7
10 Роман 01.03.2016 16:51:31 165.3
11 Кирил 01.04.2016 16:51:31 345.2
Пусть в этой таблице будет содержать некоторые выставленные счета разным пользователям PERSON на разные суммы SM в разное время DT.