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!