Questão FC374548
Considere as informações em uma tabela chamada produtos de um banco de dados relacional de uma loja: Código Produto Preço Fornecedor Estoque 1 Bolsa 150 A 5 2 Agenda 30 B 10 3 Chap
Linguagem SQL
Instituto Consulplan · 2021
Considere as informações em uma tabela chamada produtos de um banco de dados relacional de uma loja:
| Código |
Produto | Preço | Fornecedor | Estoque |
| 1 | Bolsa | 150 | A | 5 |
| 2 | Agenda | 30 | B | 10 |
| 3 | Chapéu | 120 | C | 22 |
| 4 | Luva | 90 | B | 9 |
| 5 | Bolsa | 200 | A | 1 |
| 6 | Pulseira | 150 | A | 2 |
Para saber o valor total em estoque de cada fornecedor, o exato comando SQL que retorna à informação desejada é:
- select fornecedor, preco*estoque as valor from produtos
- select distinct fornecedor, sum(preco) as valor from produtos
- select fornecedor, sum(preco*estoque) as valor from produtos group by fornecedor
- select fornecedor, valor from produtos group by fornecedor having sum(preco*estoque) as valor
Mostrar resposta e comentário
Gabarito
Certo
Comentário do professor
A consulta select fornecedor, sum(preco*estoque) as valor from produtos group by fornecedor calcula o valor total em estoque por fornecedor ao multiplicar, para cada linha, o preco*estoque e então agregar esses resultados.
O termo preco*estoque é avaliado por registro; a função SUM acumula esses produtos; a cláusula GROUP BY garante que a soma seja feita separadamente para cada fornecedor. O alias AS apenas renomeia a coluna resultante para "valor".
Aplicando aos dados: fornecedor A → \(150\cdot5 + 200\cdot1 + 150\cdot2 = 1250\); fornecedor B → \(30\cdot10 + 90\cdot9 = 1110\); fornecedor C → \(120\cdot22 = 2640\).
Portanto, a consulta retorna uma linha por fornecedor com o somatório do valor do estoque de seus produtos, exatamente o pedido pelo enunciado.
Conteúdo do catálogo FC Concursos · Atualizado em