Skip to content

Tudo Sobre o Uso do SUM() com OVER(PARTITION BY) no SQL

    Introdução

    Você já se deparou com aquelas funções misteriosas no SQL, como o SUM() com OVER(PARTITION BY), e ficou se perguntando o que elas fazem? Bem, você está no lugar certo! Neste artigo, vou te explicar tudo o que você precisa saber sobre essa poderosa funcionalidade do SQL.

    Para começar, deixe-me revelar o segredo: o SUM() com OVER(PARTITION BY) permite que você faça cálculos incríveis e obtenha insights valiosos a partir dos seus dados. Imagine que você é um detetive investigando informações em um banco de dados, e o SUM() com OVER(PARTITION BY) é a sua lupa para encontrar pistas importantes!

    Vamos embarcar juntos nessa jornada e descobrir como usar essa funcionalidade para turbinar suas análises de dados!

    Cenário 1: Descobrindo o Salário Total por Cargo

    Vamos começar com um exemplo prático. Suponha que temos uma tabela chamada ’employees’ com informações sobre os funcionários de uma empresa, incluindo seus cargos e salários.

    Você, como analista de dados, quer calcular o salário total para cada cargo. Afinal, quem não quer saber quanto dinheiro a empresa está gastando com salários?

    Não se preocupe, é mais fácil do que parece! Usando o SUM() com OVER(PARTITION BY job), você pode agrupar os dados por cargo e, em seguida, calcular a soma dos salários para cada grupo.

    Aqui está o código SQL para essa missão:

    E a tabela resposta:

    Agora você tem os salários totais para cada cargo em um piscar de olhos! Esse recurso pode economizar um tempo precioso e permitir que você se concentre em análises mais aprofundadas.

    Cenário 2: Calculando um Total com Descontos Usando o SUM() com CASE WHEN

    Vamos avançar um pouco mais em nossa investigação.

    Imagine que agora você precisa calcular o valor total de cada pedido (quantidade *preço), levando em conta descontos aplicados a alguns itens específicos: se product_id = 3146, aplicar desconto de 80%, se product_id = 3106, aplicar desconto de 60%.

    Da tabela ‘order_items’ abaixo:

    Uau, isso parece desafiador, não é mesmo?

    Não se preocupe, estamos aqui para te ajudar a resolver esse mistério! Usando a declaração CASE WHEN em conjunto com o SUM() com OVER(PARTITION BY), você pode calcular o valor total do pedido, aplicando os descontos aos itens selecionados.

    Dê uma olhada no código SQL a seguir:

    E a tabela resposta:

    Agora você tem o valor total de cada pedido, considerando todos os descontos aplicados! Essa é uma ferramenta valiosa para análises financeiras e pode ajudar a empresa a economizar dinheiro em suas transações.

    Conclusão

    Agora que você desvendou o mistério do SUM() com OVER(PARTITION BY) no SQL, está pronto para se tornar um verdadeiro detetive dos dados! Essa funcionalidade pode abrir novas portas para suas análises e revelar insights que antes eram impossíveis de encontrar.

    Lembre-se de que o SQL é uma ferramenta poderosa, e o SUM() com OVER(PARTITION BY) é apenas uma das muitas funcionalidades disponíveis para você explorar. Continue aprimorando suas habilidades de análise de dados e divirta-se desvendando os segredos escondidos em seus bancos de dados!

    Resumo

    • O SUM() com OVER(PARTITION BY) permite que você faça cálculos sofisticados e obtenha insights valiosos a partir dos seus dados.
    • Use-o para calcular totais por grupos específicos de dados e levar suas análises a um novo nível.
    • Combine o SUM() com OVER(PARTITION BY) com a declaração CASE WHEN para calcular valores com descontos aplicados.
    • Torne-se um verdadeiro detetive dos dados e aproveite ao máximo as funcionalidades do SQL!

    Espero que este artigo tenha sido útil para você, e que você se sinta confiante para utilizar o SUM() com OVER(PARTITION BY) em suas próprias análises de dados. Lembre-se sempre de explorar todas as ferramentas disponíveis e aproveitar ao máximo o poder do SQL para tomar decisões informadas e inteligentes.

    Leave a Reply

    Your email address will not be published. Required fields are marked *