Procura

Banco de dadosSql (2)


EXERCÍCIOS - Exercício 337

  • (CESGRANRIO 2019)

O esquema relacional a seguir define um banco de dados, que contém os resultados das provas de natação dos Jogos Pan-americanos de 2019. Os nomes das tabelas e dos campos são autoexplicativos, permitindo, assim, entender a organização dos dados. As únicas exceções são os campos TEMPO_INDV e TEMPO, presentes na tabela RESULTADO. Eles existem porque em provas de revezamento são registrados os tempos (TEMPO_INDV) de cada um dos 4 membros da equipe e o tempo total (TEMPO) gasto pela equipe para completar a prova. Em provas individuais, o campo TEMPO_INDV recebe o valor nulo (NULL), enquanto o tempo gasto pelo atleta para completar a prova é registrado no campo TEMPO.
CREATE TABLE ATLETA (
NUMERO NUMBER(5,0) NOT NULL,
NOME VARCHAR2(50) NOT NULL,
PAIS CHAR(3) NOT NULL,
CONSTRAINT ATLETA_PK PRIMARY KEY (NUMERO))
CREATE TABLE PROVA (
CODIGO CHAR(5) NOT NULL,
DESCRICAO VARCHAR2(30) NOT NULL,
CONSTRAINT PROVA_PK PRIMARY KEY (CODIGO))
CREATE TABLE RESULTADO (
NUM_ATL NUMBER(5,0) NOT NULL,
COD_PRV CHAR(5) NOT NULL,
COLOCACAO NUMBER(2,0) NOT NULL,
TEMPO_INDV VARCHAR2(8),
TEMPO VARCHAR2(8) NOT NULL,
CONSTRAINT RESULTADO_PK PRIMARY KEY (NUM_ATL,COD_PRV),
CONSTRAINT RES_FK1 FOREIGN KEY (NUM_ATL)
REFERENCES ATLETA (NUMERO),
CONSTRAINT RES_FK2 FOREIGN KEY (COD_PRV)
REFERENCES PROVA (CODIGO))

Deseja-se conhecer os nomes dos nadadores brasileiros (PAIS='BRA') que conquistaram medalhas de ouro (COLOCACAO=1), juntamente com a quantidade de medalhas de ouro que cada um conquistou. Os dados devem estar ordenados em ordem decrescente de número de medalhas conquistadas.

Qual consulta SQL executa o que foi pedido?




A) SELECT A.NOME, COUNT(*) FROM ATLETA A, RESULTADO R WHERE A.NUMERO=R.NUM_ATL AND R.COLOCACAO=1 AND A.PAIS='BRA' GROUP BY A.NUMERO ORDER BY COUNT(*) DESC

B) SELECT A.NOME, COUNT(*) FROM RESULTADO R, ATLETA A WHERE A.NUMERO=R.NUM_ATL AND R.COLOCACAO=1 AND A.PAIS='BRA' ORDER BY COUNT(R.COLOCACAO) DESC

C) SELECT NOME, COUNT(*) FROM RESULTADO, ATLETA WHERE NUMERO=NUM_ATL AND COLOCACAO=1 AND PAIS='BRA' GROUP BY NOME ORDER BY COUNT(*) DESC

D) SELECT A.NOME, COUNT(*) FROM ATLETA A, RESULTADO R HAVING A.NUMERO=NUM_ATL AND R.COLOCACAO=1 AND A.PAIS='BRA' GROUP BY A.NOME ORDER BY COUNT(*) DESC

E) SELECT A.NOME, COUNT(*) FROM ATLETA A, RESULTADO R WHERE A.NUMERO=NUM_ATL AND R.COLOCACAO=1 GROUP BY A.NOME HAVING A.PAIS='BRA' ORDER BY COUNT(*) DESC


Próximo:
EXERCÍCIOS - Exercício 338

Vamos para o Anterior: Exercício 336

Tente Este: Exercício 194

Primeiro: Exercício 1

VOLTAR ao índice: Banco de dados






Cadastre-se e ganhe o primeiro capítulo do livro.
+
((ts_substr_ig=0.00ms))((ts_substr_id=3.42ms))((ts_substr_m2=0.00ms))((ts_substr_p2=1.83ms))((ts_substr_c=0.70ms))((ts_substr_im=0.79ms))
((total= 7ms))