• esProc
Tutorial
Function Reference
User Reference
External Library Guide
Data File Tool Manual
DQL Tutorial
Cluster Server Manager Manual
SPL WIN Manual
• YModel
User Reference
JSON-style Parameter Guide
• ReportLite
User Reference
• Official Website

# ranks()

Description:

Get the rankings of members of a sequence.

Syntax:A.ranks(x)

Note:

The function computes expression x over each member of sequence A to return the rankings of members of sequence A.(x), which by default is sorted in ascending order.

Parameter:

 A A sequence x An expression; cannot be omitted when A is a table sequence or a record sequence

Option:

 @z Return a ranking in descending order @i Deduplicate sequence A.(x) before getting the rankings @s Perform average operation on rankings of duplicate members and return the final result, which could contain non-integers

Return value:

An integer sequence

Example:

When A is a sequence:

 A 1 =[2,1,3,4,8,5,2,0] 2 =A1.ranks() [3,2,5,6,8,7,3,1]; rankings in ascending order. 3 =A1.ranks@z() [5,7,4,3,1,2,5,8]; rankings in descending order. 4 =A1.ranks@i() [3,2,4,5,7,6,3,1]; remove duplicate members and then get rankings. 5 =A1.ranks@s() [3.5,2.0,5.0,6.0,8.0,7.0,3.5,1.0]; compute average of rankings of duplicate members and then get rankings. That is, there are two members with value 2 and their rankings are 3 and 4 respectively and the result of average operation is (3+4)/2=3.5; so ranking of 2 in the sequence is 3.5.

When A is a table sequence or a record sequence:

 A 1 =demo.query("select top 10 * from SCORES where SUBJECT='English'") 2 =A1.ranks@z(SCORE) Get rankings of SCORE values in descending order and return [4,5,6,1,8,3,6,9,2,10] . 3 =A1.ranks@zi(SCORE) First remove duplicate SCORE values and then get rankings in descending order, and return [4,5,6,1,7,3,6,8,2,9] . 4 =A1.ranks@zs(SCORE) First compute average of rankings of duplicate members and then get rankings, and return [4.0,5.0,6.5,1.0,8.0,3.0,6.5,9.0,2.0,10.0], that is – there are two members having value 75 and their rankings are 6 and 7 respectively, and result of average operation is (6+7)/2=6.5; so ranking of 75 in the sequence is 6.5.