Questão FC374549
Considere os dados em uma tabela denominada Livros de um banco de dados relacional de uma livraria: codigo nome preco assunto autor 1 ABC 50 X 981 2 DEF 60 Y 981 3 GHI 100 Z 155 4
Linguagem SQL
Instituto Consulplan · 2021
Considere os dados em uma tabela denominada Livros de um banco de dados relacional de uma livraria:
| codigo |
nome | preco | assunto | autor |
| 1 | ABC | 50 | X | 981 |
| 2 | DEF | 60 | Y | 981 |
| 3 | GHI | 100 | Z | 155 |
| 4 | JKL | 40 | Y | 156 |
| 5 | MNO | 100 | Z | 400 |
Para ter acesso a uma listagem do preço médio dos livros por assunto, considerando somente assuntos cujo preço médio seja superior a 50, o comando SQL a ser utilizado é:
- select nome, assunto, preco from livros having avg(preco) > 50
- select assunto, preco from livros where preco > 50 group by assunto, preco
- select assunto, avg(preco) from livros group by assunto having avg(preco) > 50
- select nome, assunto, preco from livros where ( sum(preco) / count(codigo) ) > 50
Mostrar resposta e comentário
Gabarito
Certo
Comentário do professor
O comando SELECT assunto, AVG(preco) retorna para cada grupo o atributo assunto e a média dos preços desse grupo.
A cláusula GROUP BY assunto agrupa as tuplas por assunto; a função de agregação AVG(preco) calcula a média em cada grupo segundo a fórmula \( \text{média} = \dfrac{\sum preco}{\text{contagem}} \).
A cláusula HAVING AVG(preco) > 50 é aplicada após o agrupamento e filtra grupos cuja média de preço seja maior que 50. Ou seja, primeiro obtém-se médias por assunto e, depois, escolhem-se apenas os assuntos que satisfazem a condição.
No conjunto dado, por exemplo, calcula‑se a média por assunto e mantém‑se somente os grupos com média \(>50\), resultando nos assuntos cujo preço médio ultrapassa 50.
Conteúdo do catálogo FC Concursos · Atualizado em