Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

[Projeto] Projeto Aula 5

-- Quantos clientes existem na base de dados?

SELECT COUNT(id_cliente) FROM clientes;

-- Quantos produtos foram vendidos no ano de 2022?

SELECT strftime("%Y", v.data_venda) AS "Ano", 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
WHERE strftime("%Y", v.data_venda) = "2022"
GROUP BY Nome_Categoria, "Ano"
ORDER BY "Ano", Qtd_Vendas DESC;

-- Qual a categoria que mais vendeu em 2022? -- Calcule a porcentagem de vendas por categorias no ano de 2022.

SELECT Ano, Nome_Categoria, Qtd_Vendas, ROUND(100.0*Qtd_Vendas/(SELECT COUNT(*) from itens_venda iv
                                                                JOIN vendas v ON v.id_venda = iv.venda_id WHERE strftime("%Y", v.data_venda) = "2022"), 2) || "%" as Porcentagem
from(
  SELECT strftime("%Y", v.data_venda) AS "Ano", 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
  WHERE strftime("%Y", v.data_venda) = "2022"
  GROUP BY Nome_Categoria, "Ano"
  ORDER BY "Ano", Qtd_Vendas DESC);

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

SELECT * from vendas
 GROUP by data_venda
 LIMIT 1

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

SELECT strftime("%Y", v.data_venda) as "Ano", f.nome AS Nome_fornecedor, 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 fornecedores f on f.id_fornecedor = p.fornecedor_id
WHERE strftime("%Y", v.data_venda) = "2020"
GROUP by Nome_fornecedor, "Ano"
ORDER BY "Ano", Qtd_vendas DESC
limit 2;
2 respostas

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

Apesar de diferente senti que o resultado dessa consulta ficou mais organizado por paginas por isso optei por fazer um código extenso com intuito de poder comparar.

SELECT Ano, Nome_Categoria, Qtd_Vendas, ROUND(100.0*Qtd_Vendas/(SELECT COUNT(*) from itens_venda iv
                                                                JOIN vendas v ON v.id_venda = iv.venda_id WHERE strftime("%Y", v.data_venda) = "2020"), 2) || "%" as Porcentagem
from(
  SELECT strftime("%Y", v.data_venda) AS "Ano", 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
  WHERE strftime("%Y", v.data_venda) = "2020"
  GROUP BY Nome_Categoria, "Ano"
  ORDER BY "Ano", Qtd_Vendas DESC);
  
SELECT Ano, Nome_Categoria, Qtd_Vendas, ROUND(100.0*Qtd_Vendas/(SELECT COUNT(*) from itens_venda iv
                                                                JOIN vendas v ON v.id_venda = iv.venda_id WHERE strftime("%Y", v.data_venda) = "2021"), 2) || "%" as Porcentagem
from(
  SELECT strftime("%Y", v.data_venda) AS "Ano", 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
  WHERE strftime("%Y", v.data_venda) = "2021"
  GROUP BY Nome_Categoria, "Ano"
  ORDER BY "Ano", Qtd_Vendas DESC);
  
 SELECT Ano, Nome_Categoria, Qtd_Vendas, ROUND(100.0*Qtd_Vendas/(SELECT COUNT(*) from itens_venda iv
                                                                JOIN vendas v ON v.id_venda = iv.venda_id WHERE strftime("%Y", v.data_venda) = "2022"), 2) || "%" as Porcentagem
from(
  SELECT strftime("%Y", v.data_venda) AS "Ano", 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
  WHERE strftime("%Y", v.data_venda) = "2022"
  GROUP BY Nome_Categoria, "Ano"
  ORDER BY "Ano", Qtd_Vendas DESC);
  
 SELECT Ano, Nome_Categoria, Qtd_Vendas, ROUND(100.0*Qtd_Vendas/(SELECT COUNT(*) from itens_venda iv
                                                                JOIN vendas v ON v.id_venda = iv.venda_id WHERE strftime("%Y", v.data_venda) = "2023"), 2) || "%" as Porcentagem
from(
  SELECT strftime("%Y", v.data_venda) AS "Ano", 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
  WHERE strftime("%Y", v.data_venda) = "2023"
  GROUP BY Nome_Categoria, "Ano"
  ORDER BY "Ano", Qtd_Vendas DESC);
solução!

Olá Hugo, tudo bem com você?

Não tem problema em escrever códigos diferentes. Na programação existem várias maneiras de se chegar a um resultado. Você está indo muito bem na prática das atividades propostas!

Continue praticando e conte com o apoio do Fórum na sua jornada.

Abraços e bons estudos!