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: Qual é a porcentagem de assistência humanitária fornecida pelos 3 principais países contribuintes em cada ano, incluindo o ano, nome do país e a porcentagem?
 ###Tabelas: 
CREATE TABLE humanitarian_assistance_2 (id INT, year INT, country VARCHAR(255), amount DECIMAL(10,2)); INSERT INTO humanitarian_assistance_2 (id, year, country, amount) VALUES (1, 2015, 'USA', 5000000), (2, 2016, 'Japan', 6000000), (3, 2017, 'Germany', 4000000), (4, 2018, 'USA', 7000000), (5, 2019, 'Canada', 5500000), (6, 2015, 'UK', 4500000), (7, 2016, 'France', 3000000), (8, 2017, 'Italy', 2500000), (9, 2018, 'Australia', 3500000), (10, 2019, 'Spain', 4000000);
SELECT year, country, ROUND(100.0 * SUM(amount) / (SELECT SUM(amount) FROM humanitarian_assistance_2 WHERE year = ha.year)::numeric, 2) AS percentage FROM humanitarian_assistance_2 ha GROUP BY year, country HAVING COUNT(*) < 4 ORDER BY year, percentage DESC;