RANK_PERCENTILE (оконная)

Синтаксис

RANK_PERCENTILE( value [ , direction ] )
RANK_PERCENTILE( value [ , direction ]                 [ TOTAL | WITHIN ... | AMONG ... ]                 [ BEFORE FILTER BY ... ]               )

Подробнее:

Описание

Выполняет относительное ранжирование. Возвращает дробный ранг (от 0 до 1). Расчитывается как (RANK(...) - 1) / (количество строк).

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

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

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

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

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

Примечание

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

Примеры

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

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

DateCityCategoryOrdersProfit
'2019-03-01''London''Office Supplies'8120.80
'2019-03-04''London''Office Supplies'2100.00
'2019-03-05''London''Furniture'1750.00
'2019-03-02''Moscow''Furniture'21250.50
'2019-03-03''Moscow''Office Supplies'485.00
'2019-03-01''San Francisco''Office Supplies'23723.00
'2019-03-01''San Francisco''Furniture'11000.00
'2019-03-03''San Francisco''Furniture'44000.00
'2019-03-02''Detroit''Furniture'53700.00
'2019-03-04''Detroit''Office Supplies'251200.00
'2019-03-04''Detroit''Furniture'23500.00

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

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

Результат

[City]SUM([Orders])RANK_PERCENTILE(SUM([Orders]), "desc")RANK_PERCENTILE(SUM([Orders]), "asc")
'Detroit'320.001.00
'London'110.670.33
'Moscow'61.000.00
'San Francisco'280.330.67
Пример с группировкой

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

DateCityCategoryOrdersProfit
'2019-03-01''London''Office Supplies'8120.80
'2019-03-04''London''Office Supplies'2100.00
'2019-03-05''London''Furniture'1750.00
'2019-03-02''Moscow''Furniture'21250.50
'2019-03-03''Moscow''Office Supplies'485.00
'2019-03-01''San Francisco''Office Supplies'23723.00
'2019-03-01''San Francisco''Furniture'11000.00
'2019-03-03''San Francisco''Furniture'44000.00
'2019-03-02''Detroit''Furniture'53700.00
'2019-03-04''Detroit''Office Supplies'251200.00
'2019-03-04''Detroit''Furniture'23500.00

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

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

Результат

[City][Category]SUM([Orders])RANK_PERCENTILE(SUM([Orders]) TOTAL)RANK_PERCENTILE(SUM([Orders]) WITHIN [City])RANK_PERCENTILE(SUM([Orders]) AMONG [City])
'Detroit''Furniture'70.431.000.00
'Detroit''Office Supplies'250.000.000.00
'London''Furniture'11.001.001.00
'London''Office Supplies'100.290.000.67
'Moscow''Furniture'20.861.000.67
'Moscow''Office Supplies'40.710.001.00
'San Francisco''Furniture'50.571.000.33
'San Francisco''Office Supplies'230.140.000.33

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

ClickHouse 21.8, Microsoft SQL Server 2017 (14.0), MySQL 5.7, Oracle Database 12c (12.1), PostgreSQL 9.3.