
cts:percent-rank( $arg as xs:anyAtomicType*, $value as xs:anyAtomicType, [$options as xs:string*] ) as xs:double?
Returns the rank of a value in a data set as a percentage of the data set.
This function works like math:percent-rank except each item in
the sequence is repeated cts:frequency times before calculating
the rank.
This function is designed to take a sequence of values returned
by a lexicon function (for example, cts:element-values); if you
input non-lexicon values, the result will be the empty sequence.
xquery version "1.0-ml";
(:
This query assumes an int range index
is configured in the database. It
generates some sample data and then
performs the aggregation in a separate
transaction.
:)
for $x in 1 to 10
return
xdmp:document-insert(fn:concat($x, ".xml"),
<my-element>{
for $y in 1 to $x
return <int>{$x}</int>
}</my-element>);
cts:percent-rank(
cts:element-values(
xs:QName("int"), (), ("type=int", "item-frequency")), 9)
=> 0.672727272727273