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, é
a) 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)
b) INSERT 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)
c) INSERT INTO PRECO_MENSAL (TIPO, ANO, MES, PRECO) SELECT TIPO, YEAR(DATA) ,MONTH(DATA), PRECO FROM PRECO_DIARIO GROUP IN TIPO, YEAR(DATA) ,MONTH(DATA)
d) UPDATE 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)
e) UPDATE TABLE PRECO_MENSAL SET TIPO, ANO, MES, PRECO AS SELECT TIPO, YEAR(DATA) ,MONTH(DATA), AVG(PRECO) FROM PRECO_DIARIO GROUP BY TIPO, YEAR(DATA) ,MONTH(DATA)