Outdated Version

You are viewing an older version of this section. View current production version.

DENSE_RANK

Ranking function. Returns the rank of the current row within the partition as specified by the order by clause. If two or more rows tie they have the same ranking. The difference between RANK and DENSE_RANK is that DENSE_RANK does not skip values after a tie.

Syntax

DENSE_RANK () OVER (
    [PARTITION BY (col | expr), ...] 
    [ORDER BY (col | expr), ...]
)

Return Type

Integer

Examples

create table example (a int, b int);

insert into example values(1,2),(2,2),(3,3),(4,3);

select a,b, dense_rank() over(order by b) from example;
+------+------+-------------------------------+
| a    | b    | dense_rank() over(order by b) |
+------+------+-------------------------------+
|    1 |    2 |                             1 |
|    2 |    2 |                             1 |
|    3 |    3 |                             2 |
|    4 |    3 |                             2 |
+------+------+-------------------------------+