Oracle rank: RANK ФУНКЦИЯ — Oracle PL/SQL •MySQL •MariaDB •SQL Server •SQLite
Лоран Функции ранжирования Семейство ранжирующих функций использует ORDER BY в SELECT ENAME HIREDATE ROW_NUMBER возвращает номер строки в указанном RANK и DENSE_RANK являются детерминированными. SELECT ЭНАМЯ Row_number всегда возвращает различные числа для для ROW_NUMBER, DENSE_RANK и RANK имеют разные ВЫБЕРИТЕ ОТДЕЛ Примечание. Аналитическая функция не может По умолчанию LEAD и LAG возвращают предыдущий и ВЫБЕРИТЕ ЭНАМЯ Возвращаются значения последних трех строк.
|
Введение в функцию Rank в Oracle
В этой статье мы увидим, как использовать аналитическую функцию RANK в базе данных Oracle и как она помогает нам в анализе.
Что такое функция РАНГ?
Функция RANK — это аналитическая функция Oracle, которая вычисляет ранг извлекаемых значений или относительно набора строк. Одни и те же значения будут иметь один и тот же ранг для группы строк или последующих рангов, поскольку они привязаны к значениям, поэтому они могут не быть последовательными в последовательности или количестве, поскольку они могут различаться в каждом случае.
Аналитические функции действительно полезны, когда мы пытаемся использовать их для целей отчетности и помогают в принятии бизнес-решений. Чтобы использовать функцию RANK, нам нужно использовать «ЗАКАЗ ПО ПУНКТУ «.
Вы можете узнать больше о « Приказ по пункту «, нажав по этой ссылке на другую мою статью.
Функция RANK будет использоваться после применения к строкам предложения «ORDER BY» , как показано в синтаксисе ниже.
Синтаксис для функции RANK:
RANK() ВНУТРИ ГРУППЫ (ORDER BY <<имя столбца>> DESC/ASC)
В аналитических функциях RANK нам не нужны условия PARTITIONED BY для успешного выполнения.
Возьмем пример получения рангов сотрудников по отделам.
ВЫБЕРИТЕ ПЕРВОЕ_ИМЯ ,LAST_NAME , SALARY, DEPARTMENT_ID, RANK() OVER ( ORDER BY зарплата DESC) "Звание" от СОТРУДНИКОВ ГДЕ DEPARTMENT_ID =50 ;
Вывод:
FIRST_NAME LAST_NAME SALARY DEPARTMENT_ID Звание ------------------------------ -------------------- ----- ---------- --------------- ---------- адам Мэтью Вайс 8000 50 2 Пайам 7900 50 3 Shanta Vollman 6500 50 4 Кевин Mourgos 5800 50 5 Нандита 4200 50 6 Алексис 4100 50 7 Сара Бритни 3900 50 9 Келли Renske Ladwig 3600 50 11 11 Дженнифер Дилли 3600 50 11 Тренна Раджс 3500 50 13 Джулия Деллингер 3400 50 14 лаура Джейсон 3300 Уинстон 3200 50 17 Сэмюэл 3200 50 17 Стивен 3200 50 17 Джулия Найер 3200 50 17 Кёртис 3100 50 21 Жан 3100
Из вышеприведенного вывода мы видим, что мы не видим, что присвоенные RANKS являются последовательными в последовательности.