Skip to main content

dense_rank ranking window function

Applies to: check marked yes Databricks SQL check marked yes Databricks Runtime

Returns the rank of a value compared to all values in the partition.

Syntax

dense_rank()

Arguments

This function takes no arguments.

Returns

An INTEGER.

The OVER clause of the window function must include an ORDER BY clause. Unlike the function rank ranking window function, dense_rank will not produce gaps in the ranking sequence. Unlike row_number ranking window function, dense_rank does not break ties. If the order is not unique the duplicates share the same relative later position.

Examples

SQL
> SELECT a,
b,
dense_rank() OVER(PARTITION BY a ORDER BY b),
rank() OVER(PARTITION BY a ORDER BY b),
row_number() OVER(PARTITION BY a ORDER BY b)
FROM VALUES ('A1', 2), ('A1', 1), ('A2', 3), ('A1', 1) tab(a, b);
A1 1 1 1 1
A1 1 1 1 2
A1 2 2 3 3
A2 3 1 1 1