RANK_PERCENTILE (window)

Syntax

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

More info:

Description

Returns the relative rank (from 0 to 1) of the current row if ordered by the given argument. Calculated as (RANK(...) - 1) / (row count) .

If direction is "desc" or omitted, then ranking is done from greatest to least, if "asc", then from least to greatest.

See also RANK, RANK_DENSE, RANK_UNIQUE.

Argument types:

  • valueBoolean | Date | Datetime | Fractional number | Integer | String | UUID
  • directionString

Return type: Fractional number

Note

Only constant values are accepted for the arguments (direction).

Examples

Example with two arguments

Source data

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

Grouped by [City].

Sorted by [City].

Result

[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
Example with grouping

Source data

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

Grouped by [City], [Category].

Sorted by [City], [Category].

Result

[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

Data source support

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