FC ConcursosFC Concursos

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 é:

  1. select nome, assunto, preco from livros having avg(preco) > 50
  2. select assunto, preco from livros where preco > 50 group by assunto, preco
  3. select assunto, avg(preco) from livros group by assunto having avg(preco) > 50
  4. 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

Continue aprendendo