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 é o valor médio da doação por doador, particionado por ano e ordenado pelo valor total da doação?
 ###Tabelas: 
CREATE TABLE donors (id INT, name VARCHAR(50), total_donations DECIMAL(10,2), donation_year INT); INSERT INTO donors (id, name, total_donations, donation_year) VALUES (1, 'John Doe', 500.00, 2020), (2, 'Jane Smith', 750.00, 2019), (3, 'Mike Johnson', 300.00, 2021);
SELECT donation_year, AVG(total_donations) avg_donation, RANK() OVER (PARTITION BY donation_year ORDER BY avg_donation DESC) donor_rank FROM donors GROUP BY donation_year ORDER BY donation_year, avg_donation DESC;