Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

Desafio Categoria de produtos

SELECT 
    strftime('%Y/%m', v.data_venda) AS 'Ano/Mês', 
    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, "Ano/Mês"
ORDER BY 
    nome_categoria;
1 resposta
solução!

Olá Vitor. Tudo bem com você?

Obrigado por compartilhar seu código com a comunidade Alura.

Gostei de como você utilizou a função strftime para organizar os dados por ano e mês. Essa abordagem é muito útil para análises temporais. Além disso, sua junção de tabelas com JOIN está bem estruturada, garantindo que todas as informações relevantes sejam incluídas.

Uma dica interessante é o uso do HAVING para filtrar resultados após o agrupamento. Por exemplo, se você quiser exibir apenas as categorias com mais de 10 vendas, veja como pode fazer:


SELECT 
    strftime('%Y/%m', v.data_venda) AS 'Ano/Mês', 
    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, "Ano/Mês"
HAVING 
    COUNT(iv.produto_id) > 1000
ORDER BY 
    nome_categoria;

No exemplo acima, o HAVING é usado para exibir apenas categorias com mais de 1000 vendas. Ele atua como um filtro adicional para os dados já agrupados.

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