Yandex Cloud
Поиск
Связаться с намиПодключиться
  • Документация
  • Блог
  • Все сервисы
  • Статус работы сервисов
    • Популярные
    • Инфраструктура и сеть
    • Платформа данных
    • Контейнеры
    • Инструменты разработчика
    • Бессерверные вычисления
    • Безопасность
    • Мониторинг и управление ресурсами
    • Машинное обучение
    • Бизнес-инструменты
  • Все решения
    • По отраслям
    • По типу задач
    • Экономика платформы
    • Безопасность
    • Техническая поддержка
    • Каталог партнёров
    • Обучение и сертификация
    • Облако для стартапов
    • Облако для крупного бизнеса
    • Центр технологий для общества
    • Облако для интеграторов
    • Поддержка IT-бизнеса
    • Облако для фрилансеров
    • Обучение и сертификация
    • Блог
    • Документация
    • Контент-программа
    • Мероприятия и вебинары
    • Контакты, чаты и сообщества
    • Идеи
    • Истории успеха
    • Тарифы Yandex Cloud
    • Промоакции и free tier
    • Правила тарификации
  • Документация
  • Блог
Проект Яндекса
© 2025 ООО «Яндекс.Облако»
Yandex DataLens
    • Обзор
    • Синтаксис формул
      • Все функции
        • Обзор
        • AVG
        • AVG_IF
        • COUNT
        • COUNT_IF
        • FIRST
        • LAG
        • LAST
        • MAVG
        • MAX
        • MCOUNT
        • MIN
        • MMAX
        • MMIN
        • MSUM
        • RANK
        • RANK_DENSE
        • RANK_PERCENTILE
        • RANK_UNIQUE
        • RAVG
        • RCOUNT
        • RMAX
        • RMIN
        • RSUM
        • SUM
        • SUM_IF
      • Поддержка функций
    • Параметры
  • Аудитные логи Audit Trails
  1. Вычисляемые поля
  2. Справочник функций
  3. Оконные функции
  4. RANK

RANK (оконная)

Статья создана
Yandex Cloud
Улучшена
amatol
Обновлена 6 ноября 2024 г.

СинтаксисСинтаксис

Стандартный
Расширенный
RANK( value [ , direction ] )
RANK( value [ , direction ]
      [ TOTAL | WITHIN ... | AMONG ... ]
      [ BEFORE FILTER BY ... ]
    )

Подробнее:

  • TOTAL, WITHIN, AMONG
  • BEFORE FILTER BY

ОписаниеОписание

Выполняет ранжирование значений с пропусками: возвращает порядковый номер строки при сортировке по value. Строки, которые соответствуют одному и тому же значению value, имеют одно и то же значение ранга. Если первые две строки получают ранг 1, то ранг следующей строки (если значение value не совпадает) будет равен 3. Значение 2 в этом случае пропускается.

Если direction равно "desc" или не указано, то ранжирование происходит от большего к меньшему, если "asc", то от меньшего к большему. По умолчанию используется "desc".

См. также RANK_DENSE, RANK_UNIQUE, RANK_PERCENTILE.

Типы аргументов:

  • value — Логический | Дата | Дата и время | Дробное число | Целое число | Строка | UUID
  • direction — Строка

Возвращаемый тип: Целое число

Примечание

Значения аргументов (direction) должны быть константами.

ПримерыПримеры

Пример с двумя аргументами

Исходные данные

Date City Category Orders Profit
'2019-03-01' 'London' 'Office Supplies' 8 120.80
'2019-03-04' 'London' 'Office Supplies' 2 100.00
'2019-03-05' 'London' 'Furniture' 1 750.00
'2019-03-02' 'Moscow' 'Furniture' 2 1250.50
'2019-03-03' 'Moscow' 'Office Supplies' 4 85.00
'2019-03-01' 'San Francisco' 'Office Supplies' 23 723.00
'2019-03-01' 'San Francisco' 'Furniture' 1 1000.00
'2019-03-03' 'San Francisco' 'Furniture' 4 4000.00
'2019-03-02' 'Detroit' 'Furniture' 5 3700.00
'2019-03-04' 'Detroit' 'Office Supplies' 25 1200.00
'2019-03-04' 'Detroit' 'Furniture' 2 3500.00

Группировка по [City].

Сортировка по [City].

Формулы:

  • City: [City] ;
  • Order Sum: SUM([Orders]) ;
  • RANK desc: RANK(SUM([Orders]), "desc") ;
  • RANK asc: RANK(SUM([Orders]), "asc") .

Результат

City Order Sum RANK desc RANK asc
'Detroit' 32 1 4
'London' 11 3 2
'Moscow' 6 4 1
'San Francisco' 28 2 3
Пример с группировкой

Исходные данные

Date City Category Orders Profit
'2019-03-01' 'London' 'Office Supplies' 8 120.80
'2019-03-04' 'London' 'Office Supplies' 2 100.00
'2019-03-05' 'London' 'Furniture' 1 750.00
'2019-03-02' 'Moscow' 'Furniture' 2 1250.50
'2019-03-03' 'Moscow' 'Office Supplies' 4 85.00
'2019-03-01' 'San Francisco' 'Office Supplies' 23 723.00
'2019-03-01' 'San Francisco' 'Furniture' 1 1000.00
'2019-03-03' 'San Francisco' 'Furniture' 4 4000.00
'2019-03-02' 'Detroit' 'Furniture' 5 3700.00
'2019-03-04' 'Detroit' 'Office Supplies' 25 1200.00
'2019-03-04' 'Detroit' 'Furniture' 2 3500.00

Группировка по [City], [Category].

Сортировка по [City], [Category].

Формулы:

  • City: [City] ;
  • Category: [Category] ;
  • Order Sum: SUM([Orders]) ;
  • RANK TOTAL: RANK(SUM([Orders]) TOTAL) ;
  • RANK WITHIN: RANK(SUM([Orders]) WITHIN [City]) ;
  • RANK AMONG: RANK(SUM([Orders]) AMONG [City]) .

Результат

City Category Order Sum RANK TOTAL RANK WITHIN RANK AMONG
'Detroit' 'Furniture' 7 4 2 1
'Detroit' 'Office Supplies' 25 1 1 1
'London' 'Furniture' 1 8 2 4
'London' 'Office Supplies' 10 3 1 3
'Moscow' 'Furniture' 2 7 2 3
'Moscow' 'Office Supplies' 4 6 1 4
'San Francisco' 'Furniture' 5 5 2 2
'San Francisco' 'Office Supplies' 23 2 1 2

Поддержка источников данныхПоддержка источников данных

ClickHouse 21.8, Файлы, Google Sheets, Microsoft SQL Server 2017 (14.0), MySQL 5.7, Oracle Database 12c (12.1), PostgreSQL 9.3, Яндекс Документы.

Была ли статья полезна?

Предыдущая
MSUM
Следующая
RANK_DENSE
Проект Яндекса
© 2025 ООО «Яндекс.Облако»