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: Calcular a diferença entre as maiores e menores doações feitas por cada doador, juntamente com seus nomes e IDs.
 ###Tabelas: 
CREATE TABLE donors (id INT, name TEXT, donation_amount DECIMAL(10, 2)); INSERT INTO donors (id, name, donation_amount) VALUES (1, 'John Doe', 500.00), (2, 'Jane Smith', 300.00), (3, 'Alice Johnson', 200.00), (3, 'Alice Johnson', 600.00);
SELECT donors.name, donors.id, LAG(donors.donation_amount) OVER (PARTITION BY donors.name ORDER BY donors.donation_amount DESC) AS previous_donation, donors.donation_amount - LAG(donors.donation_amount) OVER (PARTITION BY donors.name ORDER BY donors.donation_amount DESC) AS donation_difference FROM donors;