1
resposta

[Projeto] Mão na massa: hora da prática - análise de dados com SQL

01 - Qual é o número de Clientes que existem na base de dados ?

SELECT COUNT (*) AS Qtd_Clientes
FROM clientes

02 - Quantos produtos foram vendidos no ano de 2022 ?

SELECT Qtd_vendas
FROM (
  SELECT strftime('%Y', data_venda) AS Ano, COUNT(*) as Qtd_Vendas
  FROM vendas
  GROUP by Ano)
WHERE Ano='2022'

03 - Qual a categoria que mais vendeu em 2022 ?

SELECT nome_categoria, Qtd_vendas
FROM(
  SELECT c.nome_categoria AS Nome_Categoria, strftime('%Y', v.data_venda) AS Ano, COUNT(iv.produto_id) AS Qtd_Vendas
  FROM itens_venda iv
  JOIN vendas v ON v.id_venda = iv.venda_id
  JOIN produtos p ON p.id_produto = iv.produto_id
  JOIN categorias c ON c.id_categoria = p.categoria_id
  GROUP BY Nome_Categoria, Ano
  ORDER BY Qtd_Vendas DESC
  )
 WHERE Ano = '2022'
 ORDER BY Qtd_Vendas DESC
 LIMIT 1

04 - Qual o primeiro ano disponível na base ?

SELECT strftime('%Y', data_venda) AS Ano
FROM vendas
GROUP by Ano
LIMIT 1

05 e 06 - Qual o nome do fornecedor que mais vendeu no primeiro ano disponível na base e quanto ele vendeu no primeiro ano disponível na base de dados ?

SELECT Fornecedor, Qtd_Vendas
FROM(
  SELECT f.nome as Fornecedor, strftime('%Y', v.data_venda) AS Ano, COUNT(iv.produto_id) AS Qtd_Vendas
  FROM itens_venda iv
  JOIN vendas v ON v.id_venda = iv.venda_id
  JOIN produtos p ON p.id_produto = iv.produto_id
  JOIN categorias c ON c.id_categoria = p.categoria_id
  JOIN fornecedores f ON f.id_fornecedor = p.fornecedor_id
  GROUP BY fornecedor_id, Ano
  ORDER BY Qtd_Vendas DESC)
WHERE Ano = '2020'
ORDER BY Qtd_Vendas DESC
LIMIT 1

07 - Quais as duas categorias que mais venderam no total de todos os anos ?

SELECT nome_categoria, Qtd_vendas
FROM(
  SELECT c.nome_categoria AS Nome_Categoria, COUNT(iv.produto_id) AS Qtd_Vendas
  FROM itens_venda iv
  JOIN vendas v ON v.id_venda = iv.venda_id
  JOIN produtos p ON p.id_produto = iv.produto_id
  JOIN categorias c ON c.id_categoria = p.categoria_id
  GROUP BY Nome_Categoria
  ORDER BY Qtd_Vendas DESC
  )
ORDER BY Qtd_Vendas DESC
LIMIT 2

08 - Crie uma tabela comparando as vendas ao longo do tempo das duas categorias que mais venderam no total de todos os anos.

  • Visão mês a mês:
SELECT "Ano/Mes",
 SUM(CASE WHEN Categoria='Eletrônicos' THEN Qtd_Vendas ELSE 0 END) AS Qtd_Vendas_Eletronicos,
 SUM(CASE WHEN Categoria='Vestuário' THEN Qtd_Vendas ELSE 0 END) AS Qtd_Vendas_Vestuario

FROM (
  SELECT c.nome_categoria as Categoria, strftime('%Y/%m', v.data_venda) AS "Ano/Mes", COUNT(iv.produto_id) AS Qtd_Vendas
  FROM itens_venda iv
  JOIN vendas v ON v.id_venda = iv.venda_id
  JOIN produtos p ON p.id_produto = iv.produto_id
  JOIN categorias c ON c.id_categoria = p.categoria_id
  JOIN fornecedores f ON f.id_fornecedor = p.fornecedor_id
  WHERE nome_categoria='Eletrônicos' OR nome_categoria='Vestuário'
  GROUP BY Categoria, "Ano/Mes"
  ORDER BY "Ano/Mes", Qtd_Vendas
  )
GROUP BY "Ano/Mes";

09 - Calcule a porcentagem de vendas por categorias no ano de 2022.

WITH total as (SELECT 
SUM(Qtd_Vendas) as t
FROM(
SELECT nome_categoria, Ano, Qtd_vendas
FROM(
  SELECT c.nome_categoria AS Nome_Categoria, strftime('%Y', v.data_venda) AS Ano, COUNT(iv.produto_id) AS Qtd_Vendas
  FROM itens_venda iv
  JOIN vendas v ON v.id_venda = iv.venda_id
  JOIN produtos p ON p.id_produto = iv.produto_id
  JOIN categorias c ON c.id_categoria = p.categoria_id
  WHERE Ano = '2022'
  GROUP BY Nome_Categoria
  ORDER BY Qtd_Vendas DESC
  )
) ), tabela as (SELECT 
Nome_Categoria, Qtd_Vendas

FROM(
SELECT nome_categoria, Ano, Qtd_vendas
FROM(
  SELECT c.nome_categoria AS Nome_Categoria, strftime('%Y', v.data_venda) AS Ano, COUNT(iv.produto_id) AS Qtd_Vendas
  FROM itens_venda iv
  JOIN vendas v ON v.id_venda = iv.venda_id
  JOIN produtos p ON p.id_produto = iv.produto_id
  JOIN categorias c ON c.id_categoria = p.categoria_id
  WHERE Ano = '2022'
  GROUP BY Nome_Categoria
  ORDER BY Qtd_Vendas DESC
  )
) ) 
SELECT tabela.Nome_Categoria, ROUND(100.0 * tabela.Qtd_Vendas / (SELECT t FROM total), 2) || '%' AS Porcentagem 
FROM total, tabela

10 - Crie uma métrica mostrando a porcentagem de vendas a mais que a melhor categoria tem em relação a pior no ano de 2022.

SELECT ROUND(100.0 * MAX(Qtd_Vendas)/MIN(Qtd_Vendas), 2) || '%' aS 'Categoria mais vendida x menos vendida'
FROM(
  SELECT c.nome_categoria AS Nome_Categoria, strftime('%Y', v.data_venda) AS Ano, COUNT(iv.produto_id) AS Qtd_Vendas
  FROM itens_venda iv
  JOIN vendas v ON v.id_venda = iv.venda_id
  JOIN produtos p ON p.id_produto = iv.produto_id
  JOIN categorias c ON c.id_categoria = p.categoria_id
  WHERE Ano = '2022'
  GROUP BY Nome_Categoria
  ORDER BY Qtd_Vendas DESC
  )
1 resposta

Bom dia Gabrielle, tudo bem com você?

É ótimo poder acompanhar a sua evolução e dedicação nos estudos na plataforma da Alura. Continue com essa dedicação, pois ela é muito importante para o seu crescimento profissional, e essa constância fará toda a diferença na sua carreira.

Conte com o apoio do Fórum na sua jornada. Fico à disposição. Abraços e bons estudos!