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
) должны быть константами.
Примеры
Пример с двумя аргументами
Исходные данные
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] | SUM([Orders]) | RANK_PERCENTILE(SUM([Orders]), "desc") | RANK_PERCENTILE(SUM([Orders]), "asc") |
---|---|---|---|
'Detroit' | 32 | 0.00 | 1.00 |
'London' | 11 | 0.67 | 0.33 |
'Moscow' | 6 | 1.00 | 0.00 |
'San Francisco' | 28 | 0.33 | 0.67 |
Пример с группировкой
Исходные данные
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] | [Category] | SUM([Orders]) | RANK_PERCENTILE(SUM([Orders]) TOTAL) | RANK_PERCENTILE(SUM([Orders]) WITHIN [City]) | RANK_PERCENTILE(SUM([Orders]) AMONG [City]) |
---|---|---|---|---|---|
'Detroit' | 'Furniture' | 7 | 0.43 | 1.00 | 0.00 |
'Detroit' | 'Office Supplies' | 25 | 0.00 | 0.00 | 0.00 |
'London' | 'Furniture' | 1 | 1.00 | 1.00 | 1.00 |
'London' | 'Office Supplies' | 10 | 0.29 | 0.00 | 0.67 |
'Moscow' | 'Furniture' | 2 | 0.86 | 1.00 | 0.67 |
'Moscow' | 'Office Supplies' | 4 | 0.71 | 0.00 | 1.00 |
'San Francisco' | 'Furniture' | 5 | 0.57 | 1.00 | 0.33 |
'San Francisco' | 'Office Supplies' | 23 | 0.14 | 0.00 | 0.33 |
Поддержка источников данных
ClickHouse 21.8
, Microsoft SQL Server 2017 (14.0)
, MySQL 5.7
, Oracle Database 12c (12.1)
, PostgreSQL 9.3
.
Previous
Next