3
respostas

Desafio: buscando os sabores dos produtos mais vendidos

SELECT INF.CODIGO_DO_PRODUTO, TP.NOME_DO_PRODUTO, TP.SABOR, 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, TP.SABOR
HAVING SUM(INF.QUANTIDADE) > 394000 
ORDER BY SUM(INF.QUANTIDADE) DESC;
3 respostas

Oii, tudo bom?

Parabéns pela resolução do desafio! Há um ponto que gostaria de comentar: no exercício, desejamos encontrar os sabores distintos presentes em TABELA_DE_PRODUTOS cuja soma das vendas são maiores que 394.000.

Nesse sentido, como sua consulta apresenta outras informações (como código, nome e quantidade do produto), podemos refatorá-la chegando neste resultado:

SELECT DISTINCT TP.SABOR 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, TP.SABOR
HAVING SUM(INF.QUANTIDADE) > 394000 

Após o SELECT, escrevemos DISTINCT TP.SABOR, fazendo com que apenas os valores diferentes sejam apresentados na coluna. Além disso, como não é necessário ordenar o resultado final, removemos o ORDER BY da consulta!

A partir dessas mudanças, chegaremos em uma tabela semelhante a esta:

SABOR
Laranja
Maca
Manga
Melancia

Continue se dedicando aos estudos e praticando. Se surgir alguma dúvida, fico à disposição.

Um abraço!

SELECT DISTINCT SABOR 
FROM TABELA_DE_PRODUTOS 
WHERE SABOR IN (
            SELECT TP.SABOR 
            FROM ITENS_NOTAS_FISCAIS  INF
            INNER JOIN TABELA_DE_PRODUTOS TP 
            ON INF.CODIGO_DO_PRODUTO = TP.CODIGO_DO_PRODUTO
            GROUP BY TP.NOME_DO_PRODUTO, TP.SABOR  
            HAVING SUM(INF.QUANTIDADE) > 394000
            );

Oi!

Mandou muito bem no desenvolvimento do SELECT e na adaptação do seu código anterior! Utilizar subconsultas para resolver o problema do exercício também é um caminho super válido, parabéns!

Continue assim que você vai longe :)

Abração.