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