Agregue para uma linha por mês, depois use LAG sobre os meses ordenados para pegar o valor do mês anterior e calcule (atual menos anterior) dividido pelo anterior. Proteja contra divisão por zero com NULLIF. O detalhe que importa é gerar um calendário completo de datas e fazer join com ele, para que um mês sem atividade apareça como zero em vez de sumir e fazer a comparação pular um período.
Por que os entrevistadores perguntam isso
É um teste prático que combina agregação, window functions e consciência de dados faltantes. O ponto do calendário de datas é o que separa os candidatos: quem já entregou relatório de verdade sabe que buracos nos dados deslocam a comparação silenciosamente, enquanto quem só fez exercício produz uma query que parece certa em dados completos.
Como estruturar sua resposta
- Agregue primeiro para a granularidade de mês.
- Use LAG ordenado por mês para buscar o valor anterior.
- Calcule a variação percentual e proteja o denominador.
- Faça join com um calendário de datas gerado para que meses vazios apareçam.
- Cite a sazonalidade como ressalva na interpretação do número.
Exemplo de resposta
Eu agrego para uma linha por mês, depois aplico LAG na métrica ordenada por mês e calculo a variação sobre o valor anterior, envolvendo o denominador em NULLIF para que um mês zerado não exploda a query. A parte que eu sempre acrescento é um calendário de datas. Se março não teve pedido nenhum, aquela linha simplesmente não existe no agregado, então o LAG de abril alcança fevereiro e reporta crescimento sobre o período errado sem nenhum erro. Então eu gero a lista completa de meses, faço left join do agregado nela e converto os nulos para zero com coalesce. Eu também sinalizo o risco de interpretação quando entrego. Mês a mês em um negócio com sazonalidade forte é ruidoso, e fevereiro ser mais curto que janeiro faz quase tudo parecer queda. Quando o público vai tomar decisão com base nisso, eu normalmente mostro o ano contra ano ao lado, ou normalizo por dias no mês, e digo isso no gráfico.
Vai encarar essa entrevista em breve? O GhostPilot escuta a sua chamada ao vivo, identifica a pergunta no instante em que ela é feita e coloca uma resposta estruturada na sua tela em tempo real. Teste na sua próxima entrevista simulada ou pegue um Session Pass de $29, sem assinatura, para a hora da verdade.
Veja como funcionaPerguntas de acompanhamento que você pode esperar
- Como você montaria um calendário de datas no seu data warehouse?
- Por que o ano contra ano pode ser mais honesto que o mês a mês?
- Como você trataria uma métrica que pode legitimamente ser zero?
Mais perguntas para Analista de Dados
Seu entrevistador vai fazer a própria versão desta. Cole a descrição real da vaga no Question Predictor gratuito e receba as 20 perguntas que essa vaga tem mais chance de fazer, com o que cada uma está de fato sondando.
Prever minhas perguntas