MySQL – Funções de Agregação (MAX, MIN, AVG, COUNT, SUM)
Funções de agregação são funções SQL que permitem executar uma operação aritmética nos valores de uma coluna em todos os registros de uma tabela.
Retornam um valor simples baseado em um conjunto de valores de entrada.
Sintaxe básica:
função(ALL | DISTINCT expressão)
ALL – avalia todos os registros ao agregar o valor da função; é o comportamento padrão.
DISTINCT – Usa apenas valores distintos (sem repetição) ao avaliar a função.
As funções de agregação desconsideram valores NULL (com exceção da função COUNT(*)).
As principais funções de agregação (mais comuns) em MySQL são as seguintes:
- MIN = Valor Mínimo de um conjunto de valores
- MAX = Valor Máximo de um conjunto de valores
- AVG = Média Aritmética de um conjunto de valores
- SUM = Total (Soma) de um conjunto de valores
- COUNT = Contar quantidade total de itens
A funções SUM e AVG somente aceitam como entrada um conjunto de números; já as demais funções podem operar também com outros tipos de dados não-numéricos, como por exemplo strings (caracteres) ou datas.
Vamos a alguns exemplos usando o banco de dados db_biblioteca.
Exemplos
1 – Retornar o número total de autores cadastrados na tabela de autores:
SELECT COUNT(*) FROM tbl_autores;
2 – Contar o número de autores que possuem livros cadastrados na tabela de autores, sem repetições
SELECT COUNT(DISTINCT id_autor) FROM tbl_Livro;
3 – Descobrir o preço mais alto dos livros:
SELECT MAX(Preco_Livro) FROM tbl_Livro;
4 – Descobrir a data de publicação do livro mais antigo:
SELECT MIN(Data_Pub) FROM tbl_Livro;
5 – Retornar o preço médio dos livros cadastrados no banco:
SELECT AVG(Preco_Livro) FROM tbl_Livro;
6 – Descobrir o valor total dos livros presentes na tabela de livros:
SELECT SUM(Preco_Livro) FROM tbl_Livro;
É muito comum usar as funções agregadas em conjunto com a cláusula GROUP BY, aplicando-as a grupos de dados específicos.
Assista à explicação sobre os exemplos acima (e outros) no vídeo da Bóson Treinamentos a seguir: