1
resposta

Desafios 5 e 6

Olá, vejo que as respostas da instrutora são sempre a respeito da quantidade de vendas e não sobre a quantidade de produtos vendidos. Eu posso vender uma vez dez produtos x, e vender sete vezes o produto y, a quantidade de vendas de x é um e quantidade de vendas de y é sete, mas a quantidade vendida de x é dez e a quantidade vendida de y é sete, logo o produto mais vendido é diferente do produto que foi vendido mais vezes. Então meus códigos ficaram da seguinte forma Desafio 5:

query = ''' SELECT PRODUTOS.MARCA, SUM(ITENS_PEDIDOS.QUANTIDADE) AS Qtd_pedidos
FROM PEDIDOS
JOIN PRODUTOS ON PRODUTOS.PRODUTO_ID = PEDIDOS.PRODUTO_ID
JOIN ITENS_PEDIDOS ON ITENS_PEDIDOS.PEDIDO_ID = PEDIDOS.PEDIDO_ID
WHERE ITENS_PEDIDOS.ESTADO = 'BR-SP'
GROUP BY PRODUTOS.MARCA
ORDER BY Qtd_pedidos DESC;

'''

df = sql_df(query)
df

Desafio 6:

query = ''' SELECT PRODUTOS.PRODUTO, SUM(ITENS_PEDIDOS.QUANTIDADE) AS Qtd_pedidos
FROM PEDIDOS
JOIN PRODUTOS ON PRODUTOS.PRODUTO_ID = PEDIDOS.PRODUTO_ID
JOIN ITENS_PEDIDOS ON ITENS_PEDIDOS.PEDIDO_ID = PEDIDOS.PEDIDO_ID
WHERE strftime('%m', PEDIDOS.data_compra) = '12'
GROUP BY PRODUTOS.MARCA
ORDER BY Qtd_pedidos DESC;

'''

df = sql_df(query)
df

O desafio 5 eu consegui conferir os resultados usando

sum(df['Qtd_pedidos'])

e

itens_pedidos.loc[itens_pedidos['Estado'] == 'BR-SP']['quantidade'].sum()

para comparar os valores.

Já o Desafio 6, eu imagino que teria que usar um merge, ou join para conseguir fazer a soma pelo pandas, se alguém puder me ajudar com esse codígo eu ficaria grato.

1 resposta

Oi, Luiz! Tudo bem contigo?

Peço desculpas pelo tempo que aguardou por uma resposta.

Para conferir o resultado do desafio 6, podemos utilizar o merge, assim como você comentou! Observe comigo o código abaixo:

pedidos_dezembro = pedidos[pedidos['data_compra'].dt.month == 12]
pedidos_itens_dezembro = pedidos_dezembro.merge(itens_pedidos, on='pedido_id')
quantidade_total_dezembro = pedidos_itens_dezembro['quantidade'].sum()
quantidade_total_dezembro

Por meio dessa sequência de comandos, estamos:

  • Filtrando apenas os pedidos de dezembro;
  • Mesclando os dados com os itens de pedidos, por meio do merge e com base na coluna pedido_id;
  • Calculando a quantidade total de produtos vendidos em dezembro através do sum.

Luiz, antes de comparar com o resultado de sum(df['Qtd_pedidos']) (assim como você fez no desafio 5) um detalhe precisa ser modificado na sua consulta do desafio 6. Você está agrupando por PRODUTOS.marca, contudo, está selecionando PRODUTOS.produto — neste exercício, precisamos desenvolver o seguinte agrupamento:

GROUP BY PRODUTOS.produto

Feito isso, já conseguiremos conferir normalmente o resultado da consulta! Caso queira se aprofundar neste assunto e nas funções que utilizei, deixo como dica de leitura os materiais abaixo:

Luiz, seu pensamento é bastante interessante, espero ter ajudado com a minha explicação!

Um abraço.

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