MEDIAN
Purpose
MEDIAN is an inverse distribution function. In contrast to the average function, the median function
returns the middle value or an interpolated value from a sorted window or group of rows. NULL values are ignored.
The following formula is evaluated:
Syntax
median::=
Usage Notes
MEDIAN(expr)is an alias forPERCENTILE_CONT(0.5) WITHIN GROUP (ORDER BY expr).- For inverse distribution functions, refer to PERCENTILE_CONT and PERCENTILE_DISC.
MEDIANdoes not allow the use of awindow_frame_clause.It uses the entire partition as window for the computation of the result.-
Specifying
ALLhas no effect since it is already used by default. - The
over_clausemust not contain anorder_clause. - For information about the
over_clauseand analytic functions in general, refer to the Analytic Functions section.
Examples
Aggregate Function
SELECT
department,
MEDIAN(age) MEDIAN_AGE
FROM employee_table GROUP BY department;
Result
| DEPARTMENT | MEDIAN_AGE |
| ACCOUNTS | 32 |
| HR | 32 |
Analytic Function
SELECT
id, department, age,
MEDIAN(age) OVER (PARTITION BY department) MEDIAN_AGE
FROM employee_table ORDER BY department;
Result
| ID | DEPARTMENT | AGE | MEDIAN_AGE |
| 2001 | ACCOUNTS | 30 | 32 |
| 2002 | ACCOUNTS | 32 | 32 |
| 2003 | ACCOUNTS | 27 | 32 |
| 2004 | ACCOUNTS | 42 | 32 |
| 2005 | ACCOUNTS | 42 | 32 |
| 1001 | HR | 30 | 32 |
| 1002 | HR | 34 | 32 |
| 1003 | HR | 40 | 32 |
| 1004 | HR | 30 | 32 |