1
resposta

Qual a categoria que mais vendeu em 2022 ?

select nome_categoria
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', data_venda) = '2022'
group by produto_id
order by (select count (produto_id) from itens_venda) desc
limit 1
1 resposta

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!