A partir do SQL Server 2005 possuímos um total de 4 funções de Ranking/classificação.
Para demonstrar e facilitar a compreensão destes conceitos, vamos utilizar o banco de Dados AdventureWorks que pode ser baixado do site Codeplex em : https://www.codeplex.com/MSFTDBProdSamples
Estas funções fazem com que problemas “clássicos” de SQL fiquem muito mais fáceis de se resolver.
As funções de Ranking retornam um valor de classificação para cada linha em uma partição. Todas as funções de Ranking são do tipo não-determinísticas, ou seja, as funções não-determinísticas podem retornar resultados diferentes cada vez que são chamadas com um conjunto específico de valores de entrada, mesmo se o estado do banco de dados que elas acessam permaneça o mesmo.
Retorna o número seqüencial de uma linha dentro de uma partição de um conjunto de resultados, começando em 1 para a primeira linha em cada partição.
Retorna (Rank) a posição de cada linha dentro da partição de um conjunto de resultados.
Retorna (Rank) a posição de linhas dentro da partição de um conjunto de resultados, sem quaisquer lacunas no ranking.
Distribui as linhas de uma partição ordenada em um determinado número de grupos.
O código abaixo explica o uso de todas as funções quatro juntos em uma consulta.
Veja a Query e seu resultado: