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 categorias de programas têm o maior valor total de doação por estado?
 ###Tabelas: 
CREATE TABLE program_categories (program_category_id INT, program_category_name VARCHAR(50));CREATE TABLE organizations (org_id INT, org_name VARCHAR(50), org_state VARCHAR(2));CREATE TABLE donations (donation_id INT, org_id INT, donation_amount DECIMAL(10,2)); INSERT INTO program_categories (program_category_id, program_category_name) VALUES (1, 'Education'), (2, 'Environment'), (3, 'Health'); INSERT INTO organizations (org_id, org_name, org_state) VALUES (1, 'Habitat for Humanity', 'NY'), (2, 'Greenpeace', 'CA'), (3, 'American Cancer Society', 'IL'); INSERT INTO donations (donation_id, org_id, donation_amount) VALUES (1, 1, 500.00), (2, 1, 750.00), (3, 2, 300.00), (4, 3, 400.00), (5, 3, 600.00), (6, 1, 800.00), (7, 2, 500.00), (8, 2, 300.00), (9, 3, 200.00), (10, 3, 100.00);
SELECT pc.program_category_name, o.org_state, SUM(d.donation_amount) as total_donation_amount FROM program_categories pc JOIN organizations o ON pc.program_category_id = o.org_id JOIN donations d ON o.org_id = d.org_id GROUP BY pc.program_category_name, o.org_state ORDER BY total_donation_amount DESC;