Window Functions: Ntile() - Construindo grupos.
Olá pessoal, espero que estejam todos bem, hoje gostaria de falar de uma função que quase nunca vejo sendo utilizada, mas é muito útil no dia a dia, principalmente dos profissionais de BI, com essa função de janela, podemos fazer agrupamento de forma fácil e rápida.
Vamos ao cenário:
Temos uma tabela com 100 linhas e precisamos criar 10 grupos, ou seja a cada 10 linhas teremos um novo grupo:
Criamos os grupos sem o menor esforço.
Agora o céu é o limite, podemos combinar essa função com uma window functions Sum, por exemplo para somar os id e reiniciar a cada grupo.
Reparem que legal, eu usei a NTILE para formar um grupo, coloquei em um CTE(nada mais que uma subquery) e após isso usei esse grupo para fazer uma soma acumulativa que reinicia a cada grupo!!
Já resolvi desafios complexos de T-SQL seguindo essa linha!!
Bem pessoal, hoje é algum simples, espero que tenham gostado! Até mais!
query utilizada:
create table #aux
(
id int identity
,aux char(1)
)
--rodar separado
insert into #aux values ('a')
go 100
---
;with cte
as
(
select *, grp = NTILE(10) over( order by id) from #aux
)
select *,soma= sum(id) over (partition by grp order by id)from cte
Comentários
Postar um comentário