MarkLogic 9 Product Documentation
cts:percentile

cts:percentile(
   $arg as xs:double*,
   $p as xs:double*
) as xs:double*

Summary

Returns a sequence of percentile(s) given a sequence of percentage(s). This function works like math:percentile except each item in the sequence is repeated cts:frequency times before calculating the percentile(s). The function returns the empty sequence if either $arg or $p is the empty sequence.

Parameters
arg The sequence of values. The values should be the result of a lexicon lookup.
p The sequence of percentage(s).

Usage Notes

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.

Example

xquery version "1.0-ml";

(:
   This query assumes an element range index of type 'int'
   is configured for the 'int' element 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:percentile(cts:element-values(xs:QName("int"), (),
               ("type=int", "item-frequency")), (0.25,0.5,0.75))
=>
5,7,9


Powered by MarkLogic Server | Terms of Use | Privacy Policy