MySQL MariaDB

Функция окна MySQL RANK

Функция окна MySQL RANK
Метод ранжирования присваивает ранг внутри раздела результата набора каждой строке. Ранг строки определяется путем увеличения на одну цифру ранга от строки, которая ей предшествует. MySQL использует функцию ранжирования, которая помогает ранжировать каждую строку в разделе схемы. В MySQL методы оценки действительно являются частью оконного метода. Вы будете использовать методы оценки в MySQL с одним из следующих пунктов:

Всего существует три вида функций ранжирования, а именно:

РАНГ MySQL ():

Это метод, который дает ранг внутри раздела или массива результатов с участием пробелы в строке. Хронологически ранжирование строк распределяется не всегда (i.е., увеличена на единицу из предыдущего ряда). Даже если у вас есть связь между несколькими значениями, в этот момент утилита rank () применяет к нему то же самое ранжирование. Кроме того, его предыдущий ранг плюс число повторяющихся чисел может быть последующим рангом.

Чтобы понять ранжирование, откройте клиентскую оболочку командной строки и введите свой пароль MySQL, чтобы начать его использовать.

Предположим, что у нас есть приведенная ниже таблица с именем «same» в базе данных «data» с некоторыми записями.

>> ВЫБРАТЬ * ИЗ данных.одно и тоже;

Пример 01: Простой РАНГ ()

Ниже мы использовали функцию Rank в команде SELECT. Этот запрос выбирает столбец «id» из таблицы «same», ранжируя его в соответствии со столбцом «id». Как видите, мы присвоили столбцу рейтинга имя «my_rank». Рейтинг теперь будет храниться в этом столбце, как показано ниже.

>> ВЫБРАТЬ id, RANK () OVER (ORDER BY id) my_rank FROM fata.одно и тоже;

Пример 02: RANK () с использованием PARTITION

Предположим, что другая таблица «employee» в базе данных «data» со следующими записями. У нас есть еще один экземпляр, который разбивает набор результатов на сегменты.

>> ВЫБРАТЬ * ИЗ данных.работник;

Чтобы использовать метод RANK (), последующая инструкция присваивает рейтинг каждой строке и делит набор результатов на разделы, используя «Возраст» и сортируя их в зависимости от «Зарплата». Этот запрос извлекает все записи при ранжировании в столбце «new_rank». Вы можете увидеть результат этого запроса ниже. Таблица отсортирована по «Зарплата» и разделена по «Возрасту».

>> SELECT *, RANK () OVER (РАЗДЕЛЕНИЕ ПО возрасту ORDER BY Salary) new_rank FROM data.работник;

MySQL DENSE_Rank ():

Это функция, в которой, без дыр, определяет ранг для каждой строки внутри подразделения или набора результатов. Ранжирование строк чаще всего распределяется в последовательном порядке. Время от времени у вас есть связь между значениями, и поэтому ему присваивается точный ранг плотным рангом, а его последующий ранг является следующим последующим числом.

Пример 01: Простой DENSE_RANK ()

Предположим, у нас есть таблица «сотрудник», и вам нужно ранжировать столбцы таблицы «Имя» и «Зарплата» в соответствии с столбцом «Имя». Мы создали новый столбец dens_Rank для хранения рейтинга записей в нем. После выполнения приведенного ниже запроса у нас есть следующие результаты с разным ранжированием для всех значений.

>> ВЫБЕРИТЕ Имя, Зарплату, DENSE_RANK () ВЫШЕ (ЗАКАЗАТЬ ПО имени) dens_rank ИЗ данных.работник;

Пример 02: DENSE_RANK () с использованием PARTITION

Давайте посмотрим на другой пример, который разбивает набор результатов на сегменты. Согласно синтаксису ниже, результирующий набор, разделенный фразой PARTITION BY, возвращается оператором FROM, а затем метод DENSE_RANK () размазывается по каждому разделу с использованием столбца «Имя». Затем для каждого сегмента фраза ORDER BY размазывается, чтобы определить императив строк с помощью столбца «Возраст».

>> ВЫБЕРИТЕ Имя, Возраст, Зарплата, DENSE_RANK () ВЫШЕ (РАЗДЕЛЕНИЕ ПО ИМЕНИ ПОРЯДОК ПО возрасту) new_rank FROM data.работник;

После выполнения вышеуказанного запроса вы можете увидеть, что мы получили очень отличный результат по сравнению с методом Single density_rank () в приведенном выше примере. У нас есть одно и то же повторяющееся значение для каждого значения строки, как вы можете видеть ниже. Это связь ранговых ценностей.

MySQL PERCENT_RANK ():

Это действительно метод процентного ранжирования (сравнительного ранга), который вычисляет строки внутри раздела или коллекции результатов. Этот метод возвращает список со шкалой значений от нуля до 1.

Пример 01: Простой PERCENT_RANK ()

Используя таблицу «employee», мы рассмотрели пример простого метода PERCENT_RANK (). У нас есть приведенный ниже запрос для этого. Столбец per_rank был создан методом PERCENT_Rank () для ранжирования набора результатов в процентной форме. Мы получали данные в соответствии с порядком сортировки столбца «Возраст», а затем ранжировали значения из этой таблицы. Результат запроса для этого примера дал нам процентный рейтинг для значений, как показано на изображении ниже.

>> SELECT *, PERCENT_RANK () OVER (ORDER BY Age) per_rank ИЗ данных.работник;

Пример 02: PERCENT_RANK () с использованием PARTITION

После выполнения простого примера с PERCENT_RANK () теперь очередь для предложения «PARTITION BY». Мы использовали ту же таблицу «сотрудник». Давайте еще раз взглянем на другой экземпляр, который разбивает набор результатов на разделы. Исходя из синтаксиса ниже, результирующая установленная стена, отделенная выражением PARTITION BY, возмещается объявлением FROM, а затем используется метод PERCENT_RANK () для ранжирования каждого порядка строк по столбцу «Имя». На изображении, показанном ниже, вы можете видеть, что набор результатов содержит только значения 0 и 1.

>> SELECT *, PERCENT_RANK () OVER (РАЗДЕЛЕНИЕ ПО ЗАПРОСУ ПО ИМЕНИ) per_rank ИЗ данных.работник;

Заключение:

Наконец, мы выполнили все три функции ранжирования для строк, используемых в MySQL, через клиентскую оболочку командной строки MySQL. Кроме того, в нашем исследовании мы учли как простые предложения, так и предложения PARTITION BY.

Как разработать игру в Linux
Десять лет назад не многие пользователи Linux могли бы предсказать, что их любимая операционная система однажды станет популярной игровой платформой д...
Порты коммерческих игровых движков с открытым исходным кодом
Бесплатные игры с открытым исходным кодом и кроссплатформенные версии игрового движка можно использовать для игры как в старые, так и в некоторые из с...
Лучшие игры с командной строкой для Linux
Командная строка - не только ваш главный союзник при использовании Linux - она ​​также может быть источником развлечений, потому что вы можете использ...