Olá Guilherme, tudo bem?
Ao executar o seu código foi retornado a categoria Vestuário, quando, na verdade a categoria mais vendida é Eletrônicos
. Fiz algumas alterações no seu código:
SELECT c.nome_categoria, COUNT(*) as total_vendido
FROM categorias c
JOIN produtos p on c.id_categoria = p.categoria_id
JOIN itens_venda iv on p.id_produto = iv.produto_id
JOIN vendas v on v.id_venda = iv.venda_id
WHERE strftime('%Y', v.data_venda) = '2022'
GROUP BY c.nome_categoria
ORDER BY total_vendido DESC
LIMIT 1;
Substituí a tentativa de somar quantidade (iv.quantidade
) por COUNT(*)
no SELECT
, que conta o número de registros (ou seja, o número de vendas) associados a cada categoria. Isso permite que o código conte quantas vezes um produto foi vendido.
Espero ter ajudado.
Qualquer dúvida, não hesite em compartilhar no fórum.
Abraços e bons estudos!
Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓. Bons Estudos!