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 financiamento para workshops e aulas provenientes de fontes de fundação?
 ###Tabelas: 
CREATE TABLE funding_sources (id INT, name VARCHAR(255), type VARCHAR(255)); INSERT INTO funding_sources (id, name, type) VALUES (1, 'Foundation', 'foundation'), (2, 'Private', 'private'), (3, 'Corporate', 'corporate'); CREATE TABLE workshops (id INT, name VARCHAR(255), funding_source_id INT); INSERT INTO workshops (id, name, funding_source_id) VALUES (1, 'WorkshopA', 1), (2, 'WorkshopB', 2), (3, 'WorkshopC', 3); CREATE TABLE classes (id INT, name VARCHAR(255), funding_source_id INT); INSERT INTO classes (id, name, funding_source_id) VALUES (1, 'ClassA', 1), (2, 'ClassB', 2), (3, 'ClassC', 3);
SELECT (COUNT(CASE WHEN f.name = 'Foundation' AND t.type IN ('workshops', 'classes') THEN 1 END) * 100.0 / COUNT(*)) AS foundation_funding_percentage FROM funding_sources f JOIN workshops w ON f.id = w.funding_source_id JOIN classes c ON f.id = c.funding_source_id JOIN (VALUES ('workshops'), ('classes')) AS t(type) ON TRUE