Abaixo está uma instrução que descreve uma tarefa de geração de SQL, combinada com uma entrada que fornece mais contexto sobre os esquemas de tabela disponíveis. Escreva o código SQL que responda adequadamente à solicitação
 ###Instrução: Determine os 5 melhores programas de pós-graduação com os maiores valores médios de bolsas de pesquisa.
 ###Tabelas: 
CREATE TABLE graduate_programs (id INT, program VARCHAR(255), department VARCHAR(255)); INSERT INTO graduate_programs (id, program, department) VALUES (1, 'Program A', 'Physics'), (2, 'Program B', 'Mathematics'), (3, 'Program C', 'Chemistry'), (4, 'Program D', 'Biology'), (5, 'Program E', 'Technology'); CREATE TABLE research_grants (id INT, program_id INT, amount FLOAT); INSERT INTO research_grants (id, program_id, amount) VALUES (1, 1, 50000.00), (2, 1, 75000.00), (3, 2, 30000.00), (4, 3, 100000.00), (5, 3, 80000.00), (6, 4, 60000.00), (7, 5, 120000.00), (8, 5, 90000.00);
SELECT gp.program, AVG(rg.amount) as avg_grant FROM graduate_programs gp INNER JOIN research_grants rg ON gp.id = rg.program_id GROUP BY gp.program ORDER BY avg_grant DESC LIMIT 5;