1
resposta

Mão na massa (Categorias) - Preparativos para Reunião Data Science SQL e Banco de Dados

A ordem dos relacionamentos da minha consulta ficou diferente da consulta do professor.

SELECT strftime('%Y', v.data_venda) as ano, c.nome_categoria as nome_da_categoria, COUNT(iv.produto_id) as quant_vendas
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 iv.venda_id = v.id_venda
WHERE strftime('%m', v.data_venda) = '11'
GROUP by ano, nome_da_categoria
ORDER by ano, quant_vendas DESC;

A ordem dos relacionamentos faz diferença no resultado?

1 resposta

Olá, tudo bem?

A ordem dos relacionamentos na sua consulta SQL, ou seja, a sequência em que você faz os JOINs, geralmente não afeta o resultado final da consulta, desde que todas as junções necessárias sejam feitas corretamente e as condições de junção (ON) sejam especificadas corretamente. Apenas destaco que, a ordem pode afetar a performance da consulta, dependendo do otimizador de consultas do banco de dados que você está usando.

No seu caso, a consulta está estruturada para contar o número de vendas por categoria no mês de novembro, agrupando por ano e nome da categoria, e ordenando pelo ano e quantidade de vendas em ordem decrescente. Se os JOINs estão corretos e as condições de junção são precisas, a ordem dos JOINs não deve alterar o resultado.

O importante é que todas as tabelas estejam corretamente relacionadas entre si.

Espero ter ajudado.

Qualquer dúvida que surgir, compartilhe no fórum. Abraços e bons estudos!

Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓. Bons Estudos!