percentileDisc (percentile)
The percentileDisc
function calculates the percentile based on
the actual numbers in measure
. It uses the grouping and sorting
that are applied in the field wells. The percentile
function is an
alias of percentileDisc
.
Use this function to answer the following question: Which actual data points
are present in this percentile? To return the nearest percentile value that is
present in your dataset, use percentileDisc
. To return an exact
percentile value that might not be present in your dataset, use
percentileCont
instead.
Syntax
percentileDisc(
expression
,percentile
, [groupby level])
Arguments
 measure

Specifies a numeric value to use to compute the percentile. The argument must be a measure or metric. Nulls are ignored in the calculation.
 percentile

The percentile value can be any numeric constant 0–100. A percentile value of 50 computes the median value of the measure.
 groupby level

(Optional) Specifies the level to group the aggregation by. The level added can be any dimension or dimensions independent of the dimensions added to the visual.
The argument must be a dimension field. The groupby level must be enclosed in square brackets
[ ]
. For more information, see LACA functions.
Returns
The result of the function is a number.
Usage notes
percentileDisc
is an inverse distribution function that
assumes a discrete distribution model. It takes a percentile value and a
sort specification and returns an element from the given set.
For a given percentile value P
, percentileDisc
uses the sorted values in the visual and returns the value with the smallest
cumulative distribution value that is greater than or equal to
P
.
Examples of percentileDisc
The following examples help explain how percentileDisc works.
Example Comparing median, percentileDisc
, and
percentileCont
The following example shows the median for a dimension (category) by
using the percentileCont
, and percentileDisc
,
and median
functions. The median value is the same as the
percentileCont value. percentileCont
interpolates a value,
which might or might not be in the data set. However, because
percentileDisc
always displays the closest value that
exists in the dataset, the two results might not match. The last column
in this example shows the difference between the two values. The code
for each calculated field is as follows:

50%Cont = percentileCont(
example
, 50 ) 
median = median(
example
) 
50%Disc = percentileDisc(
example
, 50 ) 
ContDisc = percentileCont(
example
, 50 ) − percentileDisc(example
, 50 ) 
example = left(
(To make a simpler example, we used this expression to shorten the names of categories down to their first letter.)category
, 1 )
example median 50%Cont 50%Disc ContDisc      A 22.48 22.48 22.24 0.24 B 20.96 20.96 20.95 0.01 C 24.92 24.92 24.92 0 D 24.935 24.935 24.92 0.015 E 14.48 14.48 13.99 0.49
Example 100th percentile as maximum
The following example shows a variety of percentileDisc
values for the example
field. The calculated fields
n%Disc
are
defined as percentileDisc( {
. The values in
each column are actual numbers that come from the dataset. example
}
,n)
example 50%Disc 75%Disc 99%Disc 100%Disc      A 20.97 73.98 699.99 6783.02 B 42.19 88.84 820.08 6783.02 C 30.52 90.48 733.44 6783.02 D 41.38 85.99 901.29 6783.0
You can also specify at what level to group the computation using one or more dimensions in the view or in your dataset. This is called a LACA function. For more information about LACA functions, see LACA functions. The following example calculates the 30th percentile based on a continuous distribution of the numbers at the Country level, but not across other dimensions (Region) in the visual.
percentile({Sales}, 30, [Country])