Como utilizar Partition By no SQL Server?

Alan Nunes
Comunidade XP
2 min readDec 16, 2021

--

Nesse artigo irei mostrar de forma simples como utilizar a cláusula Partion By e para que ela serve. Vamos lá!

Introdução

A cláusula partition by serve para você pegar o resultado de uma consulta, dividir ela em pedaços como se cada pedaço fosse o resultado de uma consulta e poder aplicar funções de agregação em cada um desses pedaços, de forma individual, como por exemplo podemos utilizar o count, avg, sum, etc

Exemplo

Para iniciarmos nosso case precisamos criar uma tabela chamada Estudante e inserir alguns dados nela, segue o exemplo abaixo:

Após inserção teremos os seguintes estudantes registrados em nossa tabela:

Select com todos Estudantes

Agora imagine que seu gestor te peça para fazer um select que traga o nome, sexo, idade e a média da idade do sexo do aluno.

Para chegar a esse resultado, nós podemos separar os estudantes que são do sexo masculino e feminino e então aplicarmos a função de agregação AVG() para calcularmos a média da idade de cada sexo. Veja o exemplo abaixo.

Resultado parition by para calcular média do sexo do aluno

Ainda não entendeu como o partition by fez isso? Olha a imagem abaixo:

Exemplo de como o over partition particiona o resultado

Se você notar, o partition by partiu o resultado do nosso select em dois pedaços: feminino e masculino. E depois aplicou a função de agregação AVG em cada um desses pedaços.

Bônus

Existem diversas funções legais que podemos usar com a cláusula over além do partition by, dê uma olhada na documentação oficial para descobrir mais: https://docs.microsoft.com/en-us/sql/t-sql/queries/select-over-clause-transact-sql?view=sql-server-ver15

--

--