Ed
ano passado
Para resolver a questão, precisamos entender o que a consulta SQL deve fazer. A empresa deseja comparar as vendas de um produto específico com a média das vendas de todos os produtos na mesma categoria. Portanto, precisamos de uma subconsulta que calcule a média de vendas para a categoria do produto específico. Vamos analisar as opções: A) `SELECT produto_id, vendas FROM produtos WHERE vendas > (SELECT AVG(vendas) FROM produtos).` - Esta opção calcula a média de vendas de todos os produtos, não considerando a categoria. Portanto, não é a correta. B) `SELECT produto_id, vendas FROM produtos WHERE vendas > (SELECT AVG(vendas) FROM produtos WHERE categoria_id = produtos.categoria_id)` - Esta opção calcula a média de vendas para a categoria do produto específico, o que é exatamente o que precisamos. Esta é uma boa candidata. C) `SELECT produto_id, vendas FROM produtos WHERE vendas > (SELECT AVG(vendas) FROM produtos WHERE categoria_id = categoria_id).` - Aqui, a subconsulta não está referenciando corretamente a categoria do produto específico, pois `categoria_id` não está qualificado. Portanto, não é a correta. D) `SELECT produto_id, vendas FROM produtos WHERE categoria_id = (SELECT AVG(vendas) FROM produtos WHERE categoria_id = categoria_id).` - Esta opção está comparando `categoria_id` com uma média de vendas, o que não faz sentido. Não é a correta. E) `SELECT produto_id, vendas FROM produtos WHERE categoria_id IN (SELECT AVG(vendas) FROM produtos WHERE categoria_id = categoria_id).` - Novamente, esta opção está comparando `categoria_id` com uma média de vendas, o que não é correto. A opção correta é a B: `SELECT produto_id, vendas FROM produtos WHERE vendas > (SELECT AVG(vendas) FROM produtos WHERE categoria_id = produtos.categoria_id)`.