分析函数-DENSE_RANK

Analytic Syntax(分析语法)

Aggregate Syntax(聚集语法)

Purpose

DENSE_RANK computes the rank of a row in an ordered group of rows and returns the rank as a NUMBER. The ranks are consecutive(连续的) integers beginning with 1. The largest rank value is the number of unique values returned by the query. Rank values are not skipped in the event of ties(结). Rows with equal values for the ranking criteria(条件) receive the same rank. This function is useful for top-N and bottom-N reporting.

This function accepts as arguments any numeric datatype and returns NUMBER.

  • As an aggregate function, DENSE_RANK calculates the dense(密集的) rank of a hypothetical(假设的) row identified by the arguments of the function with respect to a given sort specification(规格). The arguments of the function must all evaluate to constant expressions within each aggregate group, because they identify a single row within each group. The constant argument expressions and the expressions in the order_by_clause of the aggregate match by position. Therefore, the number of arguments must be the same and types must be compatible.

  • As an analytic function, DENSE_RANK computes the rank of each row returned from a query with respect to the other rows, based on the values of the value_exprs in the order_by_clause.

Analytic Example

返回各部门工资排名前三位的员工(6.5)

SELECT deptno,ename,sal FROM(
    SELECT deptno,ename,sal,
    DENSE_RANK() OVER(PARTITION BY deptno ORDER BY sal DESC) AS dense_rank -- DENSE_rank分析函数,PARTITION分组子句
    FROM scott.emp ORDER BY 1,3 DESC
) WHERE dense_rank<=3;
阅读更多
个人分类: 数据库
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页

不良信息举报

分析函数-DENSE_RANK

最多只允许输入30个字

加入CSDN,享受更精准的内容推荐,与500万程序员共同成长!
关闭
关闭