Oracle/PLSQL: Cume_Dist Function

In Oracle/PLSQL, the cume_dist function returns the cumulative distribution of a value in a group of values. The cume_dist function will return a value that is >0 and <=1.

The cume_dist function can be used two ways - as an Aggregate function or as an Analytic function.

Syntax #1 - Used as an Aggregate Function

As an Aggregate function, the cume_dist returns the relative position of a row within a group of rows.

The syntax for the cume_dist function when used as an Aggregate function is:

cume_dist( expression1, ... expression_n ) WITHIN GROUP ( ORDER BY expression1, ... expression_n )

expression1 .. expression_n can be one or more expressions which identify a unique row in the group.

Note

There must be the same number of expressions in the first expression list as there is in the ORDER BY clause.

The expression lists match by position so the data types must be compatible between the expressions in the first expression list as in the ORDER BY clause.

Applies To

  • Oracle 11g, Oracle 10g, Oracle 9i

For Example

select cume_dist(1000, 500) WITHIN GROUP (ORDER BY salary, bonus)

from employees;

The SQL statement above would return the cumulative distribution of an employee with a salary of $1,000 and a bonus of $500 from within the employees table.

Syntax #2 - Used as an Analytic Function

As an Analytic function, the cume_dist returns the relative position of a value within a group of values.

The syntax for the cume_dist function when used as an Analytic function is:

cume_dist() OVER ( [ query_partition_clause] ORDER BY clause )

Applies To

  • Oracle 11g, Oracle 10g, Oracle 9i, Oracle 8i

For Example

select employee_name, salary,

cume_dist() OVER (PARTITION BY department ORDER BY salary)

from employees

where department = 'Marketing';

The SQL statement above would return the salary percentile for each employee in the Marketing department.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值