SóProvas


ID
1387783
Banca
CESGRANRIO
Órgão
LIQUIGÁS
Ano
2013
Provas
Disciplina
Banco de Dados
Assuntos

As tabelas a seguir pertencem ao esquema de um banco de dados de atletas de salto em distância.

CREATE TABLE ATLETA (
   COD NUMBER(5) NOT NULL,
   NOME VARCHAR2(50) NOT NULL,
   NUM_INSCR NUMBER(7),
   TELEFONE VARCHAR2(8) NOT NULL,
   CONSTRAINT ATLETA_PK PRIMARY KEY (COD))
CREATE TABLE PROVA (
   COD_ATL NUMBER(5) NOT NULL,
   COD_PROVA NUMBER(5) NOT NULL,
   MARCA NUMBER(5,2),
   CONSTRAINT PROVA_PK PRIMARY KEY (COD_ATL,COD_PROVA),
   CONSTRAINT PROVA_FK FOREIGN KEY (COD_ATL) REFERENCES
         ATLETA(COD))


Observação:
• A coluna MARCA, localizada na tabela PROVA, contém a distância, em metros, saltada por um atleta em uma prova.

Seja µ a média das marcas de todos os saltos realizados em uma prova.
Qual consulta permite exibir o código da prova e a média dos saltos (µ) relativos às provas em que 7,55 ≤ µ ≤ 7,60?

Alternativas
Comentários
  • Para resolvermos o item, precisamos ter duas coisas em mente:

    - Para compararmos esse valor da média com aqueles preestabelecidos, podemos utilizar tanto o BETWEEN quanto >= e <=. Ambos os operadores irão retornar o intervalo entre dois valores, inclusive os valores das extremidades.

    - Para calcular a média das marcas, podemos usar o AVG(marca).

    - Para filtrar pela média, estaremos filtrando os dados dos agrupamentos por prova, e não dos registros individuais. Por isso precisamos usar GROUP BY e o HAVING, e não o WHERE.

    Com isso em mente, vamos avaliar as alternativas:

    a) Correta! É a nossa resposta.

    b) O item agrupa os dados também por atleta, o que não está de acordo com o que foi pedido. A consulta teria como resultado as médias de cada atleta em cada prova, e não as médias de todas as marcas de cada prova.

    c) Faltou utilizar AVG(marca) novamente na comparação com o valor 7.60. O item produziria um erro no SGBD!

    d) Faltou o GROUP BY.

    e) Aqui novamente há o agrupamento por atleta, o que não condiz com o que foi pedido.