Voltar para a lista de artigos Artigos
8 minutos de leitura

Folha de dicas sobre funções agregadas do SQL

Um guia de referência rápida para usar as funções agregadas do SQL.

Esta folha de dicas de funções agregadas do SQL foi criada para ser sua companheira sempre que estiver usando o SQL para análise de dados.

A agregação de dados é essencial para qualquer análise de dados significativa. O SQL fornece um conjunto de funções que permitem incluir totais, médias e contagens em seus relatórios e extrair o valor mínimo e máximo de qualquer coluna de dados.

Nesta Folha de dicas, demonstraremos as seguintes funções de agregação do SQL:

  • SUM() - Retorna o total de todos os valores.
  • AVG() - Retorna a média de todos os valores.
  • COUNT() - Conta e retorna o número de valores.
  • MIN() - Retorna o menor valor.
  • MAX() - Retorna o maior valor.

Também mostraremos como usar funções de agregação:

  • Com GROUP BY.
  • Para ordenar dados.
  • Como uma condição de filtragem.

Se você nunca usou SQL, talvez queira começar se inscrevendo em nosso curso SQL para Iniciantes . Esse curso é adequado para iniciantes absolutos; seus 129 exercícios interativos o ajudarão a adquirir habilidades e confiança rapidamente. Você pode aprender no conforto de sua casa e não precisa instalar nenhum software, pois usará nosso banco de dados on-line por meio do seu navegador.

Funções agregadas comuns do SQL

Todos os exemplos desta folha de dicas usam os seguintes dados mantidos em uma tabela chamada orders.

departmentcustomeritemqtytot_valuedate_paid
125Kettle1152024-01-15
118Toaster440
216Mug12182024-01-22
325Desk4120
216Dinner Plate12242024-01-22
318Office Chair2362024-01-17
120Lamp345
210Cutlery Set1302024-01-22

SUM()

A função SUM() retorna a soma total de uma coluna de números.

Exemplo:

SELECT SUM(tot_value) 
FROM orders;

Resultado:

SUM(tot_value)
328

Para obter mais informações sobre como usar a função SUM(), consulte nosso livro de receitas How to Sum Values of a Column in SQL.

Para obter mais exemplos da função SUM(), consulte nosso artigo Função SQL SUM() explicada com 5 exemplos práticos.

AVG()

A função AVG() retorna o valor médio de uma coluna de números.

Exemplo:

SELECT AVG(qty) 
FROM orders;

Resultado:

AVG(qty)
4.875

Para obter mais informações sobre como usar a função AVG(), consulte nosso livro de receitas How to Find the Average of a Numeric Column in SQL.

Para obter mais exemplos de uso da função AVG(), consulte nosso artigo A função SQL AVG() explicada com exemplos

COUNT()

A função COUNT() retorna o número de linhas (ou seja, valores) em uma determinada coluna. Há três maneiras diferentes de usar essa função.

COUNT(*)

Essa opção fornece o número total de linhas retornadas pela sua consulta.

Exemplo:

SELECT COUNT(*) 
FROM orders;

Resultado:

COUNT(*)
8

COUNT(nome_da_coluna)

Essa opção fornece o número de linhas em sua consulta em que a coluna nomeada não contém um valor NULL.

Exemplo:

O exemplo mostra o número de pedidos que foram pagos, ou seja, pedidos em que date_paid não é NULL.

SELECT COUNT(date_paid) 
FROM orders;

Resultado:

COUNT(date_paid)
5

COUNT(DISTINCT nome_da_coluna)

Essa opção fornece o número de valores exclusivos na coluna nomeada.

Exemplo:

Vamos mostrar o número de clientes diferentes que fizeram pedidos.

SELECT COUNT(DISTINCT customer) 
FROM orders;

Resultado: COUNT(DISTINCT column_name)

COUNT(DISTINCT customer)
5

Para obter mais informações sobre a função COUNT(), consulte nosso livro de receitas How to Count the Number of Rows in a Table in SQL.

Para obter mais exemplos de uso da função COUNT(), consulte nosso artigo A função SQL Count Explicada Com 7 Exemplos.

Para obter mais informações sobre o uso de COUNT(DISTINCT), consulte How to Count Distinct Values in SQL

Para obter mais informações sobre a diferença entre COUNT(*), COUNT(column) e COUNT(DISTINCT), consulte Qual é a diferença entre COUNT(*), COUNT(1), COUNT(column) e COUNT(DISTINCT)?

MIN()

A função MIN() retorna o menor valor em uma coluna. Essa função funciona com a maioria dos tipos de dados, inclusive números, cadeias de caracteres (o primeiro em ordem alfabética) e datas (ou seja, a data mais antiga).

Exemplo:

SELECT MIN(tot_value) 
FROM orders;

Resultado:

MIN(tot_value)
15.00

Para obter mais informações sobre como trabalhar com a função MIN(), consulte nosso livro de receitas How to Find the Minimum Value of a Column in SQL.

Para obter mais exemplos da função MIN(), consulte nosso artigo SQL MIN and MAX Functions Explained in 6 Examples (Funções SQL MIN e MAX explicadas em 6 exemplos).

MAX()

A função MAX() retorna o maior valor em uma coluna. Essa função funciona com a maioria dos tipos de dados, inclusive números, cadeias de caracteres (o último em ordem alfabética) e datas (ou seja, a data mais recente).

Exemplo:

SELECT MAX(date_paid) 
FROM orders;

Resultado:

MAX(date_paid)
2024-01-24

Para obter mais informações sobre como trabalhar com a função MAX(), consulte Como encontrar o valor máximo de uma coluna numérica no SQL.

Para obter mais exemplos, consulte Funções SQL MIN e MAX explicadas em 6 exemplos.

Uso de funções agregadas do SQL com GROUP BY

Nos exemplos acima, os agregados foram calculados a partir da tabela inteira. No entanto, muitas vezes você precisa de agregados divididos em grupos, por exemplo, para calcular o valor total dos pedidos por cliente ou a quantidade média pedida por departamento.

No SQL, a cláusula GROUP BY cria os grupos que usamos para a agregação. Essa cláusula suprime as linhas individuais para que o relatório contenha uma linha por grupo definido. Se você agrupar por cliente, verá uma linha para cada cliente. Essa linha contém as informações resumidas que você solicitou. É possível agrupar por mais de um critério; por exemplo, você pode agrupar os clientes por sua área geográfica para obter os clientes de cada área.

Para obter mais informações sobre agrupamento em SQL, consulte nosso artigo GROUP BY em SQL Explained.

Exemplo:

SELECT customer, SUM(tot_value)
FROM orders
GROUP BY customer;

Resultado:

customerSUM(tot_value)
1030.00
1642.00
1876.00
2045.00
25135.00

A coluna pela qual você está agrupando geralmente está incluída na lista SELECT, caso contrário, o resultado não será significativo. A lista SELECT só pode incluir a coluna pela qual você está agrupando, suas funções agregadas e valores literais. Se for listada uma coluna que não seja usada em um agregado e não esteja incluída na cláusula GROUP BY, você receberá uma mensagem de erro.

Você pode incluir mais de uma função de agregação em sua consulta e pode agrupar por mais de uma coluna. Liste-os dos grupos maiores para os menores, separados por vírgulas.

Para obter mais informações, consulte estes artigos:

Se você precisar praticar o uso de agregados com grupos, consulte Trilha de Práticas em SQL: 10 exercícios práticos de GROUP BY com soluções detalhadas.

Uso de funções agregadas do SQL para ordenar seus dados

Talvez você queira ordenar seus resultados com base em uma coluna agregada. Como ORDER BY é computado depois de GROUP BY, você pode usar funções de agregação diretamente na cláusula ORDER BY.

Exemplo:

Talvez você queira agrupar os pedidos por cliente e, em seguida, mostrar os clientes ordenados pelo valor total de seus pedidos; dessa forma, o cliente com o maior valor de pedidos aparece no topo da lista.

SELECT customer, sum(tot_value)
FROM orders
GROUP BY customer
ORDER BY sum(tot_value) DESC;

Resultado:

customerSUM(tot_value)
25135.00
1876.00
2045.00
1642.00
1030.00

Você pode especificar um agregado na cláusula ORDER BY usando exatamente o mesmo formato que usou quando o especificou na lista de colunas a serem selecionadas. A cláusula DESC ordena as linhas da mais alta para a mais baixa.

Para obter mais informações sobre a classificação por funções agregadas, consulte estes livros de receitas SQL:

Uso de funções agregadas do SQL para filtrar seus dados

Às vezes, você desejará filtrar por uma coluna agregada. Para filtrar por um agregado, use a cláusula HAVING. Opcionalmente, você pode usá-la em conjunto com a cláusula WHERE para adicionar outros filtros em colunas não agregadas.

Exemplo:

Você pode querer uma lista de clientes que pagaram mais do que um determinado valor de mercadorias para incluí-los em ofertas especiais.

SELECT customer, SUM(tot_value)
FROM orders
WHERE date_paid IS NOT NULL
GROUP BY customer
HAVING sum(tot_value) > 30
ORDER BY customer;

Resultado:

customerSUM(tot_value)
1642.00
1836.00

Para filtrar as linhas por uma função agregada, você deve usar a cláusula HAVING. A cláusula HAVING segue imediatamente a cláusula GROUP BY. Opcionalmente, você também pode incluir uma cláusula WHERE e uma cláusula ORDER BY.

Para obter mais informações, consulte estes livros de receitas SQL:

Além da folha de dicas das funções agregadas do SQL

Se quiser aprimorar suas habilidades em SQL, confira nossa oferta de cursos interativos de SQL. Temos uma grande variedade de cursos em diferentes níveis de proficiência em SQL. Também temos cursos especializados que abrangem o uso do SQL na análise de dados.

Recomendo especialmente nosso caminho de aprendizado Trilha de Práticas em SQL . Ele contém 9 cursos focados na prática abrangente de SQL, incluindo Cláusulas JOIN em SQL e funções agregadas. Os exercícios são feitos em conjuntos de dados realistas, como um banco de dados de uma universidade e uma loja. Também publicamos um novo curso de prática de SQL em nossa trilha Desafio SQL do Mês .

Você pode obter todos os cursos acima e muito mais com o nosso Plano SQL Ilimitado Vitalício. Ele lhe dá acesso vitalício a todos os cursos atuais e futuros em nossa plataforma. Bom aprendizado!