Alura > Cursos de Data Science > Cursos de SQL e Banco de Dados > Conteúdos de SQL e Banco de Dados > Primeiras aulas do curso Praticando SQL: funções de agregação

Praticando SQL: funções de agregação

Funções de agregação - Funções de agregação

Olá! Boas-vindas ao curso Dominando Funções de Agregação GROUP BY e HAVING no SQL! Eu sou Igor do Nascimento Alves, instrutor na Escola de Dados, e estarei com você ao longo deste conteúdo.

Audiodescrição: Igor se descreve como uma pessoa branca, com cabelos pretos e curtos. Veste uma camiseta cinza com o desenho de um controle de video-game. O cenário é iluminado em tons de azul e verde, com uma planta decorativa ao fundo. À sua frente, um microfone.

Objetivo do Curso

Este curso foi desenvolvido para quem já tem familiaridade com funções de agregação, GROUP BY e HAVING, mas deseja consolidar esses conhecimentos por meio da prática. Nosso objetivo é reforçar o que você já aprendeu e aplicar esses conceitos em diversas situações, para garantir que você se sinta confiante ao utilizá-los.

Ao longo do curso, vamos revisar os conceitos, explorar exemplos práticos e, em seguida, apresentar uma série de desafios e exercícios em contextos variados. Assim, você poderá colocar em prática tudo o que aprendeu!

Se você já concluiu a Formação Conhecendo SQL, este curso é uma excelente oportunidade para aprofundar e praticar os conteúdos abordados!

Conteúdo do Módulo

Neste módulo, exploraremos as funções de agregação no SQL, como SUM, AVG, COUNT, MAX e MIN, que permitem resumir os dados de uma coluna. Além disso, veremos a GROUP BY, que utiliza essas funções de agregação para unir e resumir os dados. Por fim, abordaremos o uso da função HAVING, que funciona como um filtro aplicado aos resultados gerados pelo GROUP BY, de forma semelhante ao WHERE, mas em um estágio posterior.

A seguir, apresentaremos exemplos práticos para cada uma dessas funções.

Exemplo 1: Operador SUM

Utilizaremos a tabela Vendas, que contém as colunas ID, Valor e Data.

IDValorData
130002023-01-15
220002023-02-10
3502023-03-05
4302024-03-15
55002024-04-20

Suponha que queremos calcular o total de vendas. Para isso, aplicaremos a função SUM à coluna Valor com a consulta:

SELECT SUM(Valor) AS TotalVendas FROM Vendas;

Utilizamos AS para atribuir um "apelido"; neste caso TotalVendas.

O operador SUM soma os valores da coluna especificada. O resultado dessa consulta será 5.580, representando a soma dos valores na tabela.

Exemplo 2: Operador AVG

Agora, utilizaremos a tabela Clientes, que possui as colunas Nome, Cidade, Idade e um indicador de status Ativo.

NomeCidadeIdadeAtivo
AnaSão Paulo251
BrunoRio de Janeiro301
CarlaSão Paulo220
DanielBelo Horizonte351
ElisaPorto Alegre280

Suponha que queremos calcular a média de idade dos clientes. Utilizaremos a função AVG na seguinte consulta:

SELECT AVG(idade) AS MediaIdade FROM Clientes;

O operador AVG calcula a média dos valores de uma coluna. O resultado será 28, indicando que a média de idade dos clientes é de 28 anos.

Exemplo 3: Operador COUNT

O operador COUNT é utilizado para contar a quantidade de registros retornados por uma consulta. Por exemplo, para contar o total de clientes na tabela Clientes, utilizamos:

SELECT COUNT(*) AS TotalClientes FROM Clientes;

Utilizamos * para indicar que todos os registros devem ser contados.

Sem a cláusula WHERE, o COUNT retorna todos os registros da tabela. Caso adicionemos um filtro com WHERE, ele contará apenas os registros que atendem ao critério especificado. No caso, o resultado será 5, indicando que há cinco clientes registrados.

Exemplo 4: Operadores MAX e MIN

Para praticar as funções MAX e MIN usaremos a tabela Funcionarios, que possui as colunas Nome, Salario e Departamento:

NomeSalarioDepartamento
Carlos5000TI
Fernanda7000Financeiro
João3000RH
Maria4500Marketing
Paula8000TI

Queremos identificar o maior e o menor salário. Para isso, utilizamos os operadores MAX e MIN. Primeiro, utilizamos o operador MAX, na coluna Salario atribuindo o apelido MaiorSalario. Em seguida, utilizamos o operador MIN nesta mesma coluna atribuindo o apelido MenorSalario. Por fim, concluímos a consulta com FROM Funcionarios para indicar a tabela. Assim, os operadores MAX e MIN retornarão, respectivamente, o maior e o menor valor da coluna.

SELECT MAX(Salario) AS MaiorSalario, MIN(salario) AS MenorSalario FROM Funcionarios;

Esses operadores retornam, respectivamente, o maior e o menor valor de uma coluna, que são 8.000 e 3.000.

Exemplo 5: Operador GROUP BY

A ideia do GROUP BY é juntar os nossos dados com base em uma característica em comum, como, por exemplo, agrupar pela categoria dos produtos. Suponha que temos a tabela Produtos, com as colunas Nome, Categoria e Valor, e queremos calcular o total de vendas por categoria.

NomeCategoriaValor
NotebookEletrônicos3000
SmartphoneEletrônicos2000
Livro ALivros50
Livro BLivros30
Cadeira GamerMóveis500

As funções de agregação que vimos anteriormente, como SUM e AVG, são muito úteis em conjunto com o GROUP BY, pois nos ajudam a resumir os dados de forma significativa. Por exemplo, podemos querer saber o total de vendas de produtos por categoria.

Para isso, fazemos uma consulta como:

SELECT Categoria, SUM(Valor) AS TotalVendas 
FROM Produtos 
GROUP BY Categoria;

Neste caso, selecionamos a coluna Categoria para determinar como os dados serão agrupados. Utilizamos a função SUM na coluna Valor, atribuímos a ela um apelido como TotalVendas, e indicamos a origem dos dados com FROM Produtos.

A cláusula GROUP BY Categoria informa que os registros devem ser agrupados com base na Categoria. Ele processará todos os registros, agrupará aqueles com a mesma categoria (como "eletrônicos", por exemplo), e depois aplicará a soma dos valores para cada grupo.

Assim, o GROUP BY serve para agrupar linhas que possuem valores comuns em colunas específicas, sendo, neste caso, a coluna Categoria. O resultado da consulta será este:

CategoriaTotalVendas
Eletrônicos5000
Livros80
Móveis500

A consulta resultou em três linhas, correspondendo às três categorias possíveis: eletrônicos, livros e móveis, juntamente com o total de vendas de cada uma. Por exemplo, o total do preço dos eletrônicos, considerando que tínhamos dois produtos nessa categoria, é R$ 5.000. Para a categoria de livros, o total é R$ 80, e para móveis, é R$ 500.

Exemplo 6: Operador HAVING

O operador HAVING, como mencionado anteriormente, é semelhante ao operador WHERE, mas com uma diferença essencial: enquanto o WHERE filtra os dados antes de serem agrupados, o HAVING aplica o filtro após o agrupamento.

Por exemplo, retomando a consulta onde calculamos o total de vendas, suponha que agora queremos visualizar apenas as categorias que ultrapassaram R$ 4.000. Para isso, repetimos a estrutura básica da consulta:

SELECT Categoria, SUM(Valor) AS TotalVendas 
FROM Produtos 
GROUP BY Categoria
HAVING SUM(Valor) > 4000;

Perceba que boa parte da consulta é idêntica à anterior. No entanto, desta vez adicionamos o filtro com o HAVING, especificando que a soma dos valores (SUM(Valor)) deve ser maior que R$ 4.000. Assim, o HAVING atua filtrando os grupos criados pelo GROUP BY.

No resultado final, será exibida apenas uma categoria: "Eletrônicos", cuja soma ultrapassa R$ 5.000. As demais categorias, cujas vendas não atingiram esse valor, serão excluídas. Essa é a principal funcionalidade do HAVING: filtrar os resultados após o agrupamento.

Recapitulando Operadores

Pratique e Aprimore

Para facilitar seu aprendizado, preparamos uma lista de exercícios para que você possa praticar e consolidar o conteúdo. Em caso de dúvidas, consulte o glossário na próxima atividade, onde cada função é detalhadamente explicada. Além disso, você pode contar com nossa comunidade ativa no fórum e no Discord para esclarecer qualquer questão.

Vamos colocar esses conceitos em prática?

Sobre o curso Praticando SQL: funções de agregação

O curso Praticando SQL: funções de agregação possui 10 minutos de vídeos, em um total de 13 atividades. Gostou? Conheça nossos outros cursos de SQL e Banco de Dados em Data Science, ou leia nossos artigos de Data Science.

Matricule-se e comece a estudar com a gente hoje! Conheça outros tópicos abordados durante o curso:

Aprenda SQL e Banco de Dados acessando integralmente esse e outros cursos, comece hoje!

Conheça os Planos para Empresas