Classificação com Funções ROW_NUMBER, RANK, DENSE_RANK, NTILE no SQL Server
Nesta matéria do Web Mundi.com aprenderemos como utilizar as Funções de classificação no SQL Server.
Estas funções foram incluídas no SQL Server, a partir da versão 2005 e possuímos um total de 4 funções de Ranking e classificação.
Para demonstrar e facilitar a compreensão destes conceitos, vamos utilizar o banco de Dados AdventureWorks que pode ser baixado do GitHub da Microsoft em:
https://github.com/Microsoft/sql-server-samples/releases/tag/adventureworks
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.
Funções de Ranking e classificação do SQL Server
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.
USE AdventureWorks ; GO SELECT c.FirstName , c.LastName , ROW_NUMBER () OVER ( ORDER BY a.PostalCode ) AS 'Row Number', RANK () OVER ( ORDER BY a.PostalCode ) AS 'Rank', DENSE_RANK () OVER ( ORDER BY a.PostalCode ) AS 'Dense Rank', NTILE ( 4 ) OVER ( ORDER BY a.PostalCode ) AS 'Quartile', s.SalesYTD , a.PostalCode FROM Sales.SalesPerson s INNER JOIN Person.Contact c ON s.SalesPersonID = c.ContactID INNER JOIN Person.Address a ON a.AddressID = c.ContactID WHERE TerritoryID IS NOT NULL AND SalesYTD <> 0 ;
Veja a Query e seu resultado:
Você também pode encontrar mais informações sobre a utilização das Funções de Classificação no SQL Server no site da Microsoft.
Obrigado
Espero que você tenha gostado desta matéria sobre Funções de Classificação no banco de dados SQL Server da Microsoft.
Se você gostou, compartilhe estas dicas com um amigo ou participe de nossas redes sociais.
Caso queira nos incentivar a criar mais conteúdos como este, prestigie nossos anunciantes.
Um Grande Abraço
Renato Sanches
Gestor de TI – Tecnologia da Informação
Trabalhando com o banco de dados SQL Server desde 1994