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 porcentagem de espécies ameaçadas para cada tipo de habitat nas tabelas "habitat_preservation", "habitats" e "endangered_species".
 ###Tabelas: 
CREATE TABLE habitat_preservation (habitat_type VARCHAR(255), location VARCHAR(255)); CREATE TABLE habitats (habitat_type VARCHAR(255), area_size FLOAT); CREATE TABLE endangered_species (species VARCHAR(255), habitat_type VARCHAR(255));
SELECT h1.habitat_type, (COUNT(e1.species) * 100.0 / (SELECT COUNT(*) FROM endangered_species e2 WHERE e2.habitat_type = h1.habitat_type)) as endangered_percentage FROM endangered_species e1 INNER JOIN habitat_preservation h1 ON e1.habitat_type = h1.habitat_type INNER JOIN habitats h2 ON h1.habitat_type = h2.habitat_type GROUP BY h1.habitat_type;