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: Quais são as 3 principais fontes de financiamento para eventos literários nos últimos 5 anos?
 ###Tabelas: 
CREATE TABLE LiteraryEvents (id INT, title VARCHAR(50), type VARCHAR(50)); INSERT INTO LiteraryEvents (id, title, type) VALUES (1, 'Poetry Slam', 'Poetry'); INSERT INTO LiteraryEvents (id, title, type) VALUES (2, 'Book Club', 'Book'); CREATE TABLE LiteraryFunding (id INT, event_id INT, source VARCHAR(50), amount FLOAT, funding_date DATE); INSERT INTO LiteraryFunding (id, event_id, source, amount, funding_date) VALUES (1, 1, 'Foundation Grant', 10000, '2016-11-01'); INSERT INTO LiteraryFunding (id, event_id, source, amount, funding_date) VALUES (2, 1, 'Corporate Sponsorship', 15000, '2018-05-15'); INSERT INTO LiteraryFunding (id, event_id, source, amount, funding_date) VALUES (3, 2, 'Government Grant', 12000, '2019-09-30');
SELECT source, SUM(amount) as total_funding FROM LiteraryFunding f JOIN LiteraryEvents e ON f.event_id = e.id WHERE f.funding_date BETWEEN DATE_SUB(CURDATE(), INTERVAL 5 YEAR) AND CURDATE() GROUP BY source ORDER BY total_funding DESC LIMIT 3;