Funções Janela SQL: Essenciais para TPMs

01 Nov 2026 · Pela Trilha TPM

# Funções Janela SQL: Essenciais para TPMs

Funções janela SQL como ROW_NUMBER, RANK, DENSE_RANK, LAG e LEAD são poderosas ferramentas para analistas de dados e candidatos a Technical Program Manager (TPM) em startups de IA. Neste post, vamos explorar essas funções de forma prática, com exemplos concretos para que você possa se destacar em entrevistas.

Entendendo as Funções Janela SQL

1. ROW_NUMBER: Atribui um número único sequencial a cada linha dentro da partição da consulta.

2. RANK: Atribui um ranking às linhas, permitindo que linhas com o mesmo valor compartilhem o mesmo ranking.

3. DENSE_RANK: Similar a RANK, mas sem lacunas no ranking.

4. LAG: Acessa dados de uma linha anterior na mesma consulta sem usar uma junção.

5. LEAD: Acessa dados de uma linha posterior na mesma consulta sem usar uma junção.

Exemplos Práticos

Exemplo 1: ROW_NUMBER

Suponha que você precise listar os 10 primeiros usuários por número de compras.

``sql

SELECT usuario_id, COUNT(compra_id) AS total_compras

FROM compras

GROUP BY usuario_id

ORDER BY total_compras DESC

OFFSET 0 ROWS FETCH NEXT 10 ROWS ONLY;

`

Para adicionar o número de sequência:

`sql

SELECT usuario_id, total_compras, ROW_NUMBER() OVER (ORDER BY total_compras DESC) AS ranking

FROM (

SELECT usuario_id, COUNT(compra_id) AS total_compras

FROM compras

GROUP BY usuario_id

) AS subquery;

`

Exemplo 2: RANK

Para calcular o ranking de usuários com base em suas compras, mas sem lacunas:

`sql

SELECT usuario_id, total_compras, RANK() OVER (ORDER BY total_compras DESC) AS ranking

FROM (

SELECT usuario_id, COUNT(compra_id) AS total_compras

FROM compras

GROUP BY usuario_id

) AS subquery;

`

Exemplo 3: DENSE_RANK

Para um ranking sem lacunas:

`sql

SELECT usuario_id, total_compras, DENSE_RANK() OVER (ORDER BY total_compras DESC) AS ranking

FROM (

SELECT usuario_id, COUNT(compra_id) AS total_compras

FROM compras

GROUP BY usuario_id

) AS subquery;

`

Exemplo 4: LAG

Para comparar compras de um usuário com a anterior:

`sql

SELECT usuario_id, compra_id, valor,

LAG(valor) OVER (PARTITION BY usuario_id ORDER BY compra_id) AS valor_anterior

FROM compras;

`

Exemplo 5: LEAD

Para comparar compras com a próxima:

`sql

SELECT usuario_id, compra_id, valor,

LEAD(valor) OVER (PARTITION BY usuario_id ORDER BY compra_id) AS valor_proximo

FROM compras;

``

O Que os Gerentes de Recrutamento Procuram

Os gerentes de recrutamento estão procurando por candidatos que não apenas entendem essas funções, mas que também podem aplicá-las em cenários complexos. Eles querem ver:

- Como você resolve problemas de análise de dados

- Sua capacidade de escrever consultas SQL complexas

- Se você pode explicar o raciocínio por trás de suas escolhas

Erros Comuns a Evitar

- Subestimar a complexidade: Não subestime a complexidade das suas consultas. Demonstre profundidade ao abordar problemas.

- Falta de testes: Sempre teste suas consultas em dados reais antes de apresentá-las.

- Não explicar: Não se limite a apresentar a solução; explique o porquê de cada decisão.

- Ignorar o desempenho: Leve em conta o desempenho das suas consultas, especialmente em grandes conjuntos de dados.

Funções janela SQL são essenciais para a análise de dados avançada e para se destacar em entrevistas de TPM. Ao praticar e entender bem essas funções, você estará um passo à frente dos concorrentes.

Preparação intensiva para entrevistas TPM

15 dias de preparação focada: SQL avançado, Python, projetos de IA, stakeholders, governança. Comece hoje.

Ver planos