Введение в функцию ранга в SQL
В SQL обычно выполняются различные агрегированные функции, такие как MIN, MAX и AVG. После выполнения этих функций вы получите вывод в виде одной строки. Чтобы определить ранги для каждого поля индивидуально, SQL-сервер предоставляет функцию RANK(). Функция RANK() присваивает ранг, то есть целое число, каждой строке в группе наборов данных. Функция RANK() также известна как оконная функция. Прежде чем использовать функцию MYSQL RANK(), важно определить три вопроса:
- Рейтинг чего?
- В какой группе?
- Рейтинг по чему?
Теперь давайте проверим базовый синтаксис функции РАНГ() в SQL.
Синтаксис
ВЫБЕРИТЕ имя_столбца,
RANK() OVER (РАЗДЕЛ ПО… ПОРЯДОК ПО…) как ранг
Программы для Windows, мобильные приложения, игры - ВСЁ БЕСПЛАТНО, в нашем закрытом телеграмм канале - Подписывайтесь:)
ОТ имя_таблицы;
В этом синтаксисе:
- Имя_столбца представляет столбец, который вы хотите ранжировать в таблице.
- Предложение PARTITION BY делит строки результирующего набора на разделы на основе одного или нескольких параметров.
- Предложение ORDER BY сортирует строки в каждом разделе, к которому применяется функция.
Изучите последние тенденции в аналитике данных! Программа последипломного образования в программе Data AnalyticsИзучите программу
Пример
Давайте рассмотрим приведенную ниже таблицу, чтобы ранжировать данное ИМЯ СТУДЕНТА на основе ОЦЕНОК СТУДЕНТА.
Приведенный ниже код будет ранжировать StudentName на основе StudentMarks, поскольку рейтинг будет храниться в новом столбце StudentRank.
Выход
Как вы можете видеть, в приведенной выше таблице студенты были ранжированы в соответствии с их оценками.
Использование функции SQL RANK() над набором результатов
В этом примере вы узнаете, как использовать функцию РАНГ() для набора результатов. Данный запрос используется для ранжирования всех учащихся на основе их оценок.
Теперь давайте посмотрим результат приведенного выше запроса.
Выход
Как вы можете видеть в приведенном выше примере, предложение PARTITION BY отсутствует, поэтому запрос обрабатывает весь набор результатов как один раздел.
Станьте бизнес-аналитиком на базе искусственного интеллекта. Аспирантура Purdue в области бизнес-анализа. Изучите сейчас.
Предложение ORDER BY используется для сортировки строк на основе оценок учащихся. Затем функция РАНГ() применила результаты к строкам в порядке убывания оценок учащихся.
Использование функции SQL RANK() для раздела
Теперь, чтобы понять работу функции RANK() над разделом, добавьте еще 3 строки в таблицу, которую вы создали ранее, чтобы более четко понять предложение PARTITION BY.
Теперь это таблица, к которой вы примените функцию РАНГ(). В приведенную выше таблицу вы добавили еще трех учеников: Питера, Боба и Ким.
Выход
Примечание. Таблица выше разделена по названию класса, и каждый учащийся в каждом классе имеет свой рейтинг. Это означает, что предложение ORDER BY применяется к каждому разделу отдельно, как упоминалось ранее.
Учащиеся каждого класса распределяются отдельно и ранжируются соответствующим образом. В каждом классе 10, 4 и 7 только один ученик, поэтому учащиеся этих классов имеют ранг 1.
В классе 3 трое разных учащихся, поэтому они ранжируются в порядке убывания оценок учащихся, как указано в пункте ORDER BY. Аналогичным образом были ранжированы учащиеся 9 класса. Поскольку у них обоих одинаковые оценки, они оба получают ранг 1.
Получите опыт работы с новейшими инструментами и методами бизнес-аналитики с помощью программы сертификации бизнес-аналитиков. Зарегистрируйтесь сейчас!
Заключение
На этом мы заканчиваем работу функции Rank() в SQL. Теперь, когда вы узнали о функции Rank(), пришло время изучить и изучить другие функции и предложения, предоставляемые SQL-сервером, и стать экспертом в этой области. Если вы хотите получить сертификат и освоить SQL от А до Я, вам необходимо пройти сертификационный курс Simplilearn по SQL.
Если у вас есть какие-либо сомнения относительно этого урока, не стесняйтесь оставлять их в разделе комментариев, и наши эксперты ответят вам на них.
Программы для Windows, мобильные приложения, игры - ВСЁ БЕСПЛАТНО, в нашем закрытом телеграмм канале - Подписывайтесь:)