Pular para o conteúdo principal

Questão de Banco de Dados — SGBD - Sistema de Gerenciamento de Banco de Dados — CESGRANRIO 2012

Banco de DadosSGBD - Sistema de Gerenciamento de Banco de Dados
Código
cg051200
Banca
CESGRANRIO
Órgão
Petrobras
Ano
2012
Nível
Médio
Cargo
Técnico de Informática Júnior
Um programador recebeu como missão buscar o preço médio mensal do petróleo em uma tabela chamada PRECO_DIARIO e preencher isso em outra tabela chamada PRECO_MENSAL (inicialmente vazia), contendo uma linha para cada média mensal de cada tipo de petróleo. Suponha que as tabelas sejam descritas como apresentado abaixo.PRECO_DIARIO(TIPO,DATA,PRECO)PRECO_MENSAL(TIPO,ANO,MES,PRECO)Uma forma correta para realizar isso de uma só vez em SQL, na maioria dos SGDBs do mercado, é
  1. AINSERT INTO PRECO_MENSAL (TIPO, ANO, MES, PRECO)SELECT TIPO, YEAR(DATA) ,MONTH(DATA), AVG(PRECO)FROM PRECO_DIARIO GROUP BY TIPO, YEAR(DATA) ,MONTH(DATA)
  2. BINSERT TABLE PRECO_MENSAL (TIPO, ANO, MES, PRECO)SELECT TIPO, YEAR(DATA) ,MONTH(DATA), AVG(PRECO)FROM PRECO_DIARIO ORDER BY TIPO, YEAR(DATA) ,MONTH(DATA)
  3. CINSERT INTO PRECO_MENSAL (TIPO, ANO, MES, PRECO) SELECT TIPO, YEAR(DATA) ,MONTH(DATA), PRECOFROM PRECO_DIARIO GROUP IN TIPO, YEAR(DATA) ,MONTH(DATA)
  4. DUPDATE INTO PRECO_MENSAL (TIPO, ANO, MES, PRECO)SELECT TIPO, YEAR(DATA) ,MONTH(DATA), AVG(PRECO)FROM PRECO_DIARIO GROUP BY TIPO, YEAR(DATA) ,MONTH(DATA)
  5. EUPDATE TABLE PRECO_MENSAL SET TIPO, ANO, MES, PRECO ASSELECT TIPO, YEAR(DATA) ,MONTH(DATA), AVG(PRECO)FROM PRECO_DIARIO GROUP BY TIPO, YEAR(DATA) ,MONTH(DATA)
Revelar gabarito e comentário

GabaritoA — INSERT INTO PRECO_MENSAL (TIPO, ANO, MES, PRECO) SELECT TIPO, YEAR(DATA) ,MONTH(DATA), AVG(PRECO) FROM PRECO_DIARIO GROUP BY TIPO, YEAR(DATA) ,MONTH(DATA)

Link permanente: /questoes/cg051200