This Oracle tutorial explains how to use the Oracle/PLSQL DENSE_RANK function with syntax and examples.
The Oracle/PLSQL DENSE_RANK function returns the rank of a row in a group of rows. It is very similar to the RANK function. However, the RANK function can cause non-consecutive rankings if the tested values are the same. Whereas, the DENSE_RANK function will always result in consecutive rankings.
The DENSE_RANK function can be used two ways - as an Aggregate function or as an Analytic function.
As an Aggregate function, the DENSE_RANK function returns the dense rank of a row within a group of rows.
The syntax for the DENSE_RANK function when used as an Aggregate function is:
One or more expressions which identify a unique row in the group.
The DENSE_RANK function returns a numeric value.
The DENSE_RANK function can be used in the following versions of Oracle/PLSQL:
Let's look at some Oracle DENSE_RANK function examples and explore how to use the DENSE_RANK function in Oracle/PLSQL.
For example:
The SQL statement above would return the dense rank of an employee with a salary of $1,000 and a bonus of $500 from within the employees table.
As an Analytic function, the DENSE_RANK function returns the rank of each row of a query with respective to the other rows.
The syntax for the DENSE_RANK function when used as an Analytic function is:
The DENSE_RANK function returns a numeric value.
The DENSE_RANK function can be used in the following versions of Oracle/PLSQL:
Let's look at some Oracle DENSE_RANK function examples and explore how to use the DENSE_RANK function in Oracle/PLSQL.
For example:
The SQL statement above would return all employees who work in the Marketing department and then calculate a rank for each unique salary in the Marketing department. If two employees had the same salary, the DENSE_RANK function would return the same rank for both employees.