What is the use of DENSE_RANK() Function in SQL?

DENSE_FUNCTION() function is used to assign a rank to each row within a partition of a result set, with no gaps in ranking values. The DENSE_FUNCTION(() assigns a rank to every row in each partition of a result set.

Syntax:

DENSE_RANK() OVER (
    [PARTITION BY partition_expression, ... ]
    ORDER BY sort_expression [ASC | DESC], ...
)

Example: The following statements create table Table named dense_rank_demo and insert some rows into that table:

CREATE TABLE sales.dense_rank_demo (
	v VARCHAR(10)
);
	
INSERT INTO sales.dense_rank_demo(v)
VALUES('A'),('B'),('B'),('C'),('C'),('D'),('E');
	
SELECT * FROM sales.dense_rank_demo;
Code language: SQL (Structured Query Language) (sql)

The following statement uses both DENSE_RANK() and RANK() functions to assign a rank to each row of the result set:

SELECT
	v,
	DENSE_RANK() OVER (
		ORDER BY v
	) my_dense_rank,
	RANK() OVER (
		ORDER BY v
	) my_rank
FROM
	sales.dense_rank_demo;

Code language: SQL (Structured Query Language) (SQL)

Output:

v   my_dense_rank     my_rank
A   1                 1
B   2                 2
C   3                 3
D   4                 4
E   5                 5