Entao CTE é como se fosse um 'checkpoint' de querys resumidas em apelidos que vao ser chamadas na aquela analise, e a window function é uma analise mais rapida de linhas em vez de colunas como o normal?
Você está vendo a versão anterior da nova experiência da Alura que estamos preparando para você. Em breve, ela ganha uma identidade visual novinha totalmente pensada em potencializar seus estudos!
Entao CTE é como se fosse um 'checkpoint' de querys resumidas em apelidos que vao ser chamadas na aquela analise, e a window function é uma analise mais rapida de linhas em vez de colunas como o normal?
Olá, Estudante! Como vai?
Primeiramente, seja bem-vindo à Alura!
Vamos lá, vou tentar esclarecer suas dúvidas sobre CTEs e funções de janela.
Primeiro, sobre as CTEs (Common Table Expressions), você está no caminho certo. Elas funcionam como um "checkpoint" ou uma maneira de organizar suas consultas em partes menores e mais gerenciáveis. Pense nelas como tabelas temporárias que você pode criar dentro de uma consulta para simplificar a leitura e a estrutura do seu código SQL. Isso é especialmente útil em análises complexas de Data Warehouse, onde você pode precisar dividir o processo em várias etapas, como filtrar, agregar e calcular métricas derivadas.
Por exemplo, digamos que você tenha uma tabela de transações e queira calcular o total de transações por mês antes de fazer uma análise mais complexa. Você pode criar uma CTE para calcular esse total mensal e, em seguida, usar esse resultado em uma segunda CTE para calcular a variação mês a mês.
Agora, sobre as funções de janela, elas realmente oferecem uma maneira poderosa de realizar análises sem precisar agrupar os dados em linhas únicas, como acontece com GROUP BY. Em vez disso, elas permitem que você execute cálculos em um conjunto de linhas relacionadas, mantendo o detalhamento das linhas individuais. Isso é particularmente útil para cálculos como médias móveis, rankings ou, como no seu exemplo, comparações temporais.
Por exemplo, se você quiser calcular a diferença entre o valor de transações de um mês para o mês anterior, você pode usar a função LAG para acessar o valor da linha anterior dentro do mesmo conjunto de dados. Isso é feito usando a cláusula OVER, que define a ordem das linhas e, opcionalmente, particiona os dados em grupos.
Espero que isso ajude a esclarecer suas dúvidas!