---
schema_version: "1"
id: 1faf19a4ca9d683dda81ef9459b879b8e8c651f859d1225273011bf99a3d8237
title: PERCENTILE_DISC
collection: developer
version: current
locale: en-us
portal_url: https://docs.salesforce.com/developer/current/en-us/data-cloud/data-cloud-query-guide/references/data-cloud-sql-reference/aggregate-func/percentile-disc.md
canonical_url: https://developer.salesforce.com/docs/data/data-cloud-query-guide/references/dc-sql-reference/percentile-disc.html
source_site: developer.salesforce.com
content_type: documentation
content_hash: aef98463df99bd9a2c6f91f6fd8259a1b6412c1aea34f3930bedd99937889f83
products:
  - Data 360 Query Guide
  - Data 360 Developer Documentation
---
# `PERCENTILE_DISC`

**Applies to:** ✅ Data 360 SQL ✅ Tableau Hyper API

Computes a discrete percentile, returning the first input value whose position in the ordering equals or exceeds the specified fraction.

## Syntax

```sql
percentile_disc(<fraction>) WITHIN GROUP (ORDER BY <sort_expression>)
```

## Arguments

### Required

- `<fraction>`: A `double precision` value between 0 and 1 specifying the percentile to compute.
- `<sort_expression>`: An expression of any sortable type.

## Returns

Returns the same type as the sort expression. Returns NULL if the fraction is NULL.

## Considerations

- This is an ordered-set aggregate function.
- NULL values in the sorted input are ignored.
- Returns an actual value from the input set (no interpolation).
- Use `PERCENTILE_CONT` for continuous percentiles with interpolation.

## Examples

### Calculate Median

Find the median (50th percentile).

```sql
SELECT percentile_disc(0.5) WITHIN GROUP (ORDER BY salary) AS median_salary
FROM employees;
```

### Calculate Quartiles

Find the 25th and 75th percentiles.

```sql
SELECT
    percentile_disc(0.25) WITHIN GROUP (ORDER BY score) AS q1,
    percentile_disc(0.5) WITHIN GROUP (ORDER BY score) AS median,
    percentile_disc(0.75) WITHIN GROUP (ORDER BY score) AS q3
FROM test_results;
```

### Percentile by Group

Calculate percentiles for each group.

```sql
SELECT department,
    percentile_disc(0.9) WITHIN GROUP (ORDER BY response_time) AS p90_response
FROM service_calls
GROUP BY department;
```

## Related Documentation

- [PERCENTILE_CONT](https://developer.salesforce.com/docs/data/data-cloud-query-guide/references/dc-sql-reference/percentile-cont.md)
- [MODE](https://developer.salesforce.com/docs/data/data-cloud-query-guide/references/dc-sql-reference/mode.md)
- [Aggregate Functions](https://developer.salesforce.com/docs/data/data-cloud-query-guide/references/dc-sql-reference/aggregate.md)
