Window Functions em SQL — O que Separa Analista Júnior de Sênior A maioria dos analistas de dados sabe SELECT, WHERE e GROUP BY. Mas é nas Window Functions que a diferença real começa — e é onde o salário dispara. Neste artigo vamos explorar as 4 Window Functions que você precisará usar toda semana e nunca vai querer voltar ao SQL básico. 1. ROW_NUMBER() — Ranking Sem Perder Dados A forma tradicional de fazer ranking em SQL era com ROW_NUMBER(), mas a maioria usa errado. Veja a diferença: Sem Window Function (jeito ineficiente): Com Window Function (jeito que a maioria não conhece): A diferença não é só na sintaxe — é no poder. Com ROW_NUMBER() você consegue puxar o top 3 mais vendas de cada cliente em uma única query. Sem Window Function, você precisaria de subquery aninhada. 2. LAG() e LEAD() — Comparação com Linha Anterior/Próxima Variação de faturamento mês a mês é uma análise que todo gerente de vendas pede. Sem LAG(), isso exige subquery ou exportar para Python. Com LAG() — tudo em uma linha: Resultado: mês passado ganhou R$ 450.000, este mês R$ 518.000 (+15% vs período anterior). Uma única query. Sem Python. Sem planilha. 3. SUM() OVER (PARTITION BY...) — Total por Grupo Sem GROUP BY Análise de coorte é onde a maioria das pessoas desiste de SQL e vai para Python. Mas com Window Function fica trivial. Calcular retenção de coorte em uma query: Você vê retenção mês a mês por coorte de aquisição — em uma query que roda em menos de 1 segundo em tabelas com milhões de linhas. 4. RANK() vs DENSE_RANK() — Ranking com Gaps vs Sem Gaps Essa é simples mas crucial: quando você tem valores iguais em ranking. RANK(): se dois atletas empatam em 1º lugar, o próximo é 3º (com gap) DENSE_RANK(): se dois atletas empatam em 1º lugar, o próximo é 2º (sem gap) Para relatório executivo? Use DENSE_RANK() — fica mais intuitivo. Para análise técnica? Use RANK() — mostra a realidade dos empates. Por Que Ninguém Ensina Isso? Window Functions muitas vezes são negligenciadas em treinamentos porque: 1. Parecem complexas — não são. Uma vez que você escreve uma, a próxima é fácil. 2. Parecem desnecessárias — até que você descobre que eliminam horas de trabalho manual. 3. Deixam sua carreira estagnada — analista que só sabe GROUP BY é júnior pra vida toda. Dominar Window Functions Significa: ✅ Resolver análises sem exportar para Python ✅ Responder perguntas do gestor em minutos, não em horas ✅ Escrever queries que rodam 10x mais rápido ✅ Entender dados bem antes de qualquer transformação Próximo Passo Você já usa Window Functions no dia a dia? Se não, comece com ROW_NUMBER() — é a mais intuitiva. Domine essas 4 funções e você vai perceber que SQL deixa de ser ferramenta de extração e vira ferramenta de análise de verdade. Quer aprofundar em SQL Avançado com casos reais de negócio? Na Elite Data Academy temos uma trilha completa de SQL que vai da básico até essas técnicas seniores — com projetos práticos que você pode colocar no portfólio.