Olá, tudo bem ?
Hoje vamos aprender como e quando usar a clausula having do SQL..
Antes de tudo, se inscreva em nossa Newsletter e seja avisado por e-mail quando um novo conteúdo for publicado!
Para facilitar o entendimento, vamos dar alguns exemplos, explicar a teória e propor alguns exercicios para você praticar e dominar esse comando.
Exemplo:
Para receber um adicional de performance, os executivos de vendas precisam realizar no minimo 50 vendas por mês. Você como um analista de dados, precisa identificar quem são esses vendedores e disponibilizar a informação para o supervisor de venda avaliar a produtividade do time e providenciar a bonificação.
Pergunta de negócio a ser respondida: Quem são os executivos que realizaram no minimo 50 vendas no mês?
tb_vendas = Tabela de vendas de uma empresa
( preview primeiras 3 linhas )
Campos:
vendedor_id - identificador unico do executivo
cliente_id - quem comprou o produto
data_venda - data ( quando )
venda_id - identificador unico da venda
vendedor_id | cliente_id | data_venda | venda_id |
1 | 1 | 2023-01-30 | 21 |
2 | 10 | 2023-01-31 | 22 |
3 | 12 | 2023-01-31 | 23 |
Query SQL
SELECT
vendedor_id,
count(venda_id) as total_de_vendas
FROM
tb_vendas
GROUP BY vendedor_id
HAVING total_de_vendas >= 50
Explicando a query:
count(venda_id) = Para usar o having, precisamos agrupar as informações de alguma forma. Nesse exemplo estamos realizando a contagem de vendas realizadas
total_de_vendas = renomeamos com o alias o count(venda_id) para total_de_vendas
HAVING total_de_vendas >= 50 = após o group by, usamos o having para filtrar o count, e retornar apenas os registros onde o count(venda_id) seja maior ou igual a 50
Como melhorar nossa consulta:
Coloque o filtro de data selecionando o mês - por exemplo só queremos resultados de jan/23
SELECT
vendedor_id,
count(venda_id) as total_de_vendas
FROM
tb_vendas
GROUP BY vendedor_id
WHERE data_venda between '2023-01-01' and '2023-01-31'
HAVING total_de_vendas >= 50
Importante: O HAVING sempre vem depois do GROUP BY
Exercicios propostos:
Nesse exercicio, vamos usar o BigQuery. Para isso realize os passos abaixo:
Acessar o link: https://console.cloud.google.com/bigquery
Criar um novo projeto
Acessar os publics datasets: https://cloud.google.com/bigquery/public-data
Exercício 1:
Qual time de baseball realizou menos de 10 partidas sendo o time da casa? quantas partidas ele realizou?
utilize o banco de dados: `bigquery-public-data.baseball.schedules`
Dica:
Antes de tudo, realize um select simples, com limit 10 para conhecer as colunas e estrutura dos dados na tabela.
SELECT * FROM `bigquery-public-data.baseball.schedules` LIMIT 10
Identifique quais colunas podem responder a pergunta proposta
Monte a consulta SQL e execute
Compare a query e resultado com a resolução apresentada abaixo.
Resolução dos exercícios:
Atenção tente realizar os exercicios propostos antes de visualizar a correção e resultados esperados.
Exercício 1:
Qual time de baseball realizou menos de 10 partidas sendo o time da casa? quantas partidas ele realizou?
SELECT
count(gameId) games,
homeTeamName
FROM `bigquery-public-data.baseball.schedules`
group by 2
having games <= 10
Gostou desse conteúdo ? compartilhe com os amigos e siga nossa página no instagram @eunati_net = )
Se inscreva em nossa Newsletter e seja avisado por e-mail quando um novo conteúdo for publicado!
Até a próxima!
Comments