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 total das doações por categoria para os 5 principais doadores nos últimos 6 meses?
 ###Tabelas: 
CREATE TABLE donors (id INT, name VARCHAR(255), country VARCHAR(255));CREATE TABLE donations (id INT, donor_id INT, cause_id INT, amount DECIMAL(10, 2), donation_date DATE);CREATE TABLE causes (id INT, category VARCHAR(255), name VARCHAR(255));
SELECT dn.name, c.category, SUM(d.amount) FROM donors dn INNER JOIN donations d ON dn.id = d.donor_id INNER JOIN causes c ON d.cause_id = c.id WHERE d.donation_date >= DATE_SUB(NOW(), INTERVAL 6 MONTH) GROUP BY dn.id, c.category ORDER BY SUM(d.amount) DESC, dn.name LIMIT 5;