1
resposta

MÃO NA MASSA: HORA DA PRATICA - EXERCICIO 8

Olá, para resolver o exercício 8 fiz o codigo:

WITH VendasEletronicos AS (
  SELECT c.nome_categoria AS Categoria, strftime('%Y', v.data_venda) AS Ano,
  COUNT(v.id_venda) AS Qtd_Vendida
  FROM categorias c
  JOIN produtos p ON p.categoria_id = c.id_categoria
  JOIN itens_venda iv ON iv.produto_id = p.id_produto
  JOIN vendas v ON v.id_venda = iv.venda_id
  WHERE c.nome_categoria = 'Eletrônicos'
  GROUP BY Ano
), VendasVestuario AS (
  SELECT c.nome_categoria AS Categoria, strftime('%Y', v.data_venda) AS Ano,
  COUNT(v.id_venda) AS Qtd_Vendida
  FROM categorias c
  JOIN produtos p ON p.categoria_id = c.id_categoria
  JOIN itens_venda iv ON iv.produto_id = p.id_produto
  JOIN vendas v ON v.id_venda = iv.venda_id
  WHERE c.nome_categoria = 'Vestuário'
  GROUP BY Ano
 ), Anos AS (
   SELECT Ano FROM VendasEletronicos
  UNION
  SELECT Ano FROM VendasVestuario
   )
sELECT a.Ano, vv.Qtd_Vendida, ve.Qtd_Vendida
From Anos a 
JOIN VendasVestuario vv on a.ano = vv.ano
Join VendasEletronicos ve ON ve.ano = vv.ano
group by a.ano;

A dúvida é se tem algum jeito dessa consulta ser mais simples, retornando o mesmo resultado.

1 resposta

Oii, Gustavo! Tudo bem?

Parabéns por concluir a atividade proposta! É um ótimo hábito, pois te ajuda muito no desenvolvimento técnico, continue assim.

O seu código está bem estruturado, como sugestão, você pode ser unificar as subconsultas VendasEletronicos e VendasVestuario em uma consulta única, utilizando uma expressão CASE para diferenciar as categorias.

Outra dica é se inspirar no código disponibilizado pelo Instrutor na página da atividade, basta clicar no botão verde escrito: Ver opinião do instrutor.

Captura de tela mostrando dois botoes que se encontram na atividade mão na massa. Um é redirecionamento para o fórum, o discutir no fórum e, o outro, expande uma explicação do instrutor sobre a atividade, o ver a opinião do instrutor.

Espero que as sugestões te ajude de alguma forma.

Continue se dedicando aos estudos, abraço!