DENSE_RANK()

This function returns the rank of each row within a result set partition, with no gaps in the ranking values. The rank of a specific row is one plus the number of distinct rank values that come before that specific row.

Signature

DENSE_RANK ( ) OVER ( [ <partition_by_clause> ] < order_by_clause > )

Examples

SELECT product, quantity, DENSE_RANK() OVER (ORDER BY quantity) AS rnk FROM dbo.orders;
product                                  quantity    rnk
---------------------------------------- ----------- --------------------
monitor                                            1                    1
keyboard                                           2                    2
monitor                                            2                    2
mouse                                              3                    3
keyboard                                           4                    4
cable                                             10                    5

Run against SQL Server 16.0.4265.3 on 2026-09-13. This is the output we got, not the documentation’s.

Available on

  • SQL Server 2017 and later
  • Azure SQL Database
  • Azure SQL Managed Instance
  • Azure Synapse Analytics
  • Analytics Platform System (PDW)
  • Microsoft Fabric warehouse
  • Fabric SQL database

Want to run this against your own SQL Server server from an iPhone, iPad or Mac? These are ours — every connection goes straight from the device to your database, with no account and no server of ours in between.

Signature and description adapted from the Microsoft SQL documentation, used under the CC BY 4.0. SQL Server and Azure are trademarks of the Microsoft group of companies. This page is not affiliated with Microsoft.