O que são Funções de Agregação?

 

No Oracle, funções de agregação são usadas para realizar operações matemáticas e estatísticas em um conjunto de linhas e retornar um único valor. Essas funções são fundamentais para resumir e analisar grandes volumes de dados de maneira eficiente, permitindo extrair informações significativas de um conjunto de registros.

Vantagens de Usar Funções de Agregação

  • Análise de Dados: Permite calcular totais, médias, contagens e outras estatísticas de dados, facilitando a análise de grandes conjuntos de informações.
  • Eficiência: Executa operações complexas rapidamente, mesmo em grandes volumes de dados, otimizando o tempo de processamento.
  • Simplicidade: Simplifica a escrita e execução de consultas SQL para análise e relatórios, tornando o processo de análise mais direto e compreensível.

Principais Funções de Agregação

SUM

A função SUM calcula a soma total de uma coluna numérica. É amplamente utilizada para obter totais financeiros, quantidades acumuladas e outros dados numéricos agregados. Veja um exemplo:

 

SELECT SUM(salario) AS total_salarios FROM funcionarios;

Esta consulta retorna a soma de todos os salários na tabela funcionarios.

 

TOTAL_SALARIOS
29750

AVG

A função AVG calcula a média de uma coluna numérica, fornecendo a média aritmética dos valores. Veja um exemplo:

 

SELECT AVG(salario) AS media_salarios FROM funcionarios;

Esta consulta retorna a média dos salários na tabela funcionarios.

 

MEDIA_SALARIOS
4250

COUNT

A função COUNT conta o número de linhas em um conjunto de resultados, o que é útil para determinar a quantidade de registros. Veja um exemplo:

 

SELECT COUNT(salario) AS numero_empregados FROM funcionarios;

Esta consulta retorna o número total de funcionários na tabela funcionarios.

 

NUMERO_EMPREGADOS
7

Observação: Você pode usar COUNT(DISTINCT coluna) para contar apenas os valores distintos em uma coluna. Por exemplo, SELECT COUNT(DISTINCT salario) AS numero_salarios_unicos FROM funcionarios; retornará o número de salários únicos na tabela funcionarios.

 


MAX

A função MAX retorna o valor máximo encontrado em uma coluna. É útil para identificar o maior valor em uma lista, como o maior salário ou o maior valor de venda. Veja um exemplo:

 

SELECT MAX(salario) AS maior_salario FROM funcionarios;

Esta consulta retorna o maior salário registrado na tabela funcionarios.

 

MAIOR_SALARIO
7800

MIN

A função MIN retorna o valor mínimo encontrado em uma coluna, permitindo identificar o menor valor, como o menor salário ou a menor venda. Veja um exemplo:

 

SELECT MIN(salario) AS menor_salario FROM funcionarios;

Esta consulta retorna o menor salário registrado na tabela funcionarios.

 

MENOR_SALARIO
1950

Observação:

  • Desempenho: Em tabelas muito grandes, as funções de agregação podem afetar o desempenho das consultas. Certifique-se de que os índices apropriados estejam em uso para otimizar o tempo de resposta.
  • Funções de Agregação e Índices: Em alguns casos, a criação de índices em colunas usadas em funções de agregação pode melhorar a performance da consulta.

Uso de Funções de Agregação com GROUP BY e HAVING

GROUP BY

A cláusula GROUP BY é usada para agrupar resultados com base em uma ou mais colunas, permitindo aplicar funções de agregação a cada grupo. Veja um exemplo:

 

SELECT descricao AS cargo, SUM(salario) AS total_salarios
  FROM funcionarios
  JOIN cargos
    ON funcionarios.codigo_cargo = cargos.codigo
 GROUP BY descricao;

Esta consulta calcula a soma dos salários para cada cargo na tabela funcionarios, agrupando por descricao da tabela cargos.

 

CARGOTOTAL_SALARIOS
Administrador de Banco de Dados7000
Analista de Sistemas7800
Desenvolvedor10000
Gerente de Projetos1950
Engenheiro de Software3000

Observação: Sempre que uma consulta inclui mais de uma coluna que não está sendo usada em uma função de agregação (como SUM, AVG, etc.), essas colunas precisam estar listadas na cláusula GROUP BY. Caso contrário, a consulta resultará em um erro.

 


HAVING

A cláusula HAVING é usada para filtrar os resultados após a aplicação das funções de agregação, permitindo refinar os dados agregados. Veja um exemplo:

 

SELECT descricao AS cargo, SUM(salario) AS total_salarios
  FROM funcionarios
  JOIN cargos
    ON funcionarios.codigo_cargo = cargos.codigo
 GROUP BY descricao
HAVING SUM(salario) > 6000;

Esta consulta retorna os cargos cuja soma dos salários é maior que 6.000.

 

CARGOTOTAL_SALARIOS
Administrador de Banco de Dados7000
Analista de Sistemas7800
Desenvolvedor10000

Uso em Subconsultas

Funções de agregação também podem ser usadas em subconsultas para fornecer dados agregados como parte de uma consulta maior. Isso permite realizar cálculos em um nível de detalhe e usar esses resultados em outra parte da consulta principal. Veja um exemplo:

 

Suponha que você queira encontrar os funcionários cujo salário está acima da média salarial dos funcionários de seu cargo. Para isso, você pode usar uma subconsulta para calcular a média salarial e, em seguida, usar essa média para filtrar os funcionários.

 

Passo 1: Primeiro, calculamos a média salarial por cargo.

SELECT codigo_cargo, AVG(salario) AS media_salarial
  FROM funcionarios
 GROUP BY codigo_cargo;

Passo 2: Em seguida, usamos essa média salarial para filtrar funcionários que ganham acima da média em sua própria subconsulta.

SELECT nome, salario, codigo_cargo
  FROM funcionarios
 WHERE salario >
       (SELECT AVG(salario)
          FROM funcionarios
         WHERE codigo_cargo = funcionarios.codigo_cargo);
NOMESALARIOCODIGO_CARGO
Carlos Silva7800,0001
Mariana Costa7000,0004
Lucas Oliveira4500,0002

Neste exemplo, a subconsulta (SELECT AVG(salario) FROM funcionarios WHERE codigo_cargo = funcionarios.codigo_cargo) calcula a média salarial para cada cargo. A consulta principal então retorna os funcionários cujo salário é maior do que essa média salarial calculada.

 

Observação: O uso de subconsultas pode ser eficiente para consultas complexas, mas é importante verificar o desempenho para garantir que a consulta seja otimizada, especialmente em tabelas grandes.

Considerações Finais

 

As funções de agregação no Oracle são ferramentas indispensáveis para análise e sumarização de dados. Elas simplificam a execução de cálculos complexos e são essenciais para qualquer trabalho de análise de dados. Para um uso eficaz, considere a combinação de funções de agregação com cláusulas como GROUP BY e HAVING , e ajuste a performance com índices quando necessário. Além disso, subconsultas com funções de agregação permitem realizar análises mais complexas e refinadas.

 

Se você tiver alguma dúvida ou sugestão, deixe um comentário abaixo!

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *

Rolar para cima