As funções de agregação em SQL são usadas para realizar cálculos em várias linhas de uma coluna de tabela e retornar um único valor. Essas funções são essenciais para resumir dados, gerar relatórios e realizar análises estatísticas. Esta lição aborda as funções de agregação mais comuns com exemplos práticos baseados no banco de dados Sakila.
COUNT() — Conta o número de linhasSintaxe:
COUNT(expressão)
Exemplo:
SELECT COUNT(*) AS total_payments
FROM payment;
Resultado: Retorna o número total de linhas na tabela payment.
COUNT(column) vs COUNT(*)Essas duas formas são parecidas, mas não são iguais:
COUNT(*) conta todas as linhas do conjunto de resultados;COUNT(column) conta apenas as linhas em que column é NOT NULL.Por isso, se a coluna tiver valores NULL, COUNT(column) pode retornar um número menor que COUNT(*).
Exemplo (Sakila):
SELECT
COUNT(*) AS total_rentals,
COUNT(return_date) AS returned_rentals
FROM rental;
Explicação:
total_rentals conta todas as linhas da tabela rental;returned_rentals conta apenas as linhas em que return_date possui valor;return_date = NULL, então ficam fora de COUNT(return_date).SUM() — Calcula a soma dos valoresSintaxe:
SUM(expressão)
Exemplo:
SELECT SUM(amount) AS total_amount
FROM payment;
Resultado: Retorna a soma total da coluna amount.
AVG() — Calcula o valor médioSintaxe:
AVG(expressão)
Exemplo:
SELECT AVG(amount) AS average_amount
FROM payment;
Resultado: Retorna o valor médio da coluna amount.
MIN() — Encontra o valor mínimoSintaxe:
MIN(expressão)
Exemplo:
SELECT MIN(amount) AS min_amount
FROM payment;
Resultado: Retorna o menor valor na coluna amount.
MAX() — Encontra o valor máximoSintaxe:
MAX(expressão)
Exemplo:
SELECT MAX(amount) AS max_amount
FROM payment;
Resultado: Retorna o maior valor na coluna amount.
COUNT(*) para descobrir quantos clientes existem no banco de dados.SELECT COUNT(*) AS total_customers
FROM customer;
SUM(amount) com GROUP BY staff_id para ver as vendas de cada funcionário.SELECT staff_id, SUM(amount) AS staff_total
FROM payment
GROUP BY staff_id;
AVG(amount) com GROUP BY customer_id.SELECT customer_id, AVG(amount) AS avg_payment
FROM payment
GROUP BY customer_id;
As funções de agregação do SQL são ferramentas poderosas para resumir e analisar dados. Dominar COUNT, SUM, AVG, MIN e MAX ajudará você a gerar relatórios e insights valiosos do seu banco de dados. Pratique essas funções com o banco de dados Sakila para fortalecer suas habilidades em SQL.