2
respostas

Minha resolução

CREATE VIEW PRODUTOS_MAIS_VENDIDOS AS
SELECT INF.CODIGO_DO_PRODUTO, TP.NOME_DO_PRODUTO, SUM(INF.QUANTIDADE) AS QUANTIDADE 
FROM ITENS_NOTAS_FISCAIS  INF
INNER JOIN TABELA_DE_PRODUTOS TP 
ON INF.CODIGO_DO_PRODUTO = TP.CODIGO_DO_PRODUTO
GROUP BY INF.CODIGO_DO_PRODUTO, TP.NOME_DO_PRODUTO 

SELECT * FROM PRODUTOS_MAIS_VENDIDOS
WHERE QUANTIDADE > 394000
ORDER BY QUANTIDADE DESC;

Garanta sua matrícula hoje e ganhe + 2 meses grátis

Continue sua jornada tech com ainda mais tempo para aprender e evoluir

Quero aproveitar agora
2 respostas

Olá, Ycaro! Como vai?

Mandou muito bem na resolução da atividade!

Observei que você explorou o uso do CREATE VIEW para simplificar consultas complexas, utilizou muito bem o GROUP BY para consolidar os dados e ainda compreendeu a importância do ORDER BY para organizar o resultado de forma mais clara e objetiva. Permaneça postando as suas soluções, com certeza isso ajudará outros estudantes e tem grande relevância para o fórum.

Uma dica interessante para o futuro é usar HAVING para filtrar diretamente os resultados de agregações, ao invés de aplicar apenas o WHERE. Dessa forma:

SELECT INF.CODIGO_DO_PRODUTO, TP.NOME_DO_PRODUTO, SUM(INF.QUANTIDADE) AS QUANTIDADE
FROM ITENS_NOTAS_FISCAIS INF
INNER JOIN TABELA_DE_PRODUTOS TP 
ON INF.CODIGO_DO_PRODUTO = TP.CODIGO_DO_PRODUTO
GROUP BY INF.CODIGO_DO_PRODUTO, TP.NOME_DO_PRODUTO
HAVING SUM(INF.QUANTIDADE) > 394000
ORDER BY QUANTIDADE DESC;

Resultado: Retorna apenas os produtos que tiveram mais de 394000 vendas, já filtrados durante a agregação.

Isso faz com que o filtro seja aplicado de forma mais eficiente, diretamente no processo de agrupamento.

Ícone de sugestão Para saber mais:

Sugestão de conteúdo para você mergulhar ainda mais sobre o tema:

Fico à disposição! E se precisar, conte sempre com o apoio do fórum.

Abraço e bons estudos!

AluraConte com o apoio da comunidade Alura na sua jornada. Abraços e bons estudos!

Mas o objetivo desse exercicio era justamente não usar o HAVING e usar uma VIEW