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 nível médio de oxigênio dissolvido para cada espécie de peixe em nossas fazendas localizadas no Sudeste Asiático?
 ###Tabelas: 
CREATE TABLE fish_farms (id INT, name TEXT, location TEXT, water_type TEXT); INSERT INTO fish_farms (id, name, location, water_type) VALUES (1, 'Farm S', 'Jakarta', 'Saltwater'); INSERT INTO fish_farms (id, name, location, water_type) VALUES (2, 'Farm T', 'Bangkok', 'Freshwater'); CREATE TABLE fish_species (id INT, name TEXT); INSERT INTO fish_species (id, name) VALUES (1, 'Tilapia'); INSERT INTO fish_species (id, name) VALUES (2, 'Pangasius'); CREATE TABLE water_quality (id INT, fish_farm_id INT, fish_species_id INT, temperature FLOAT, pH FLOAT, dissolved_oxygen FLOAT); INSERT INTO water_quality (id, fish_farm_id, fish_species_id, temperature, pH, dissolved_oxygen) VALUES (1, 1, 1, 28.5, 7.5, 7.5); INSERT INTO water_quality (id, fish_farm_id, fish_species_id, temperature, pH, dissolved_oxygen) VALUES (2, 1, 2, 27.0, 7.4, 7.0); INSERT INTO water_quality (id, fish_farm_id, fish_species_id, temperature, pH, dissolved_oxygen) VALUES (3, 2, 1, 29.0, 7.6, 7.6); INSERT INTO water_quality (id, fish_farm_id, fish_species_id, temperature, pH, dissolved_oxygen) VALUES (4, 2, 2, 26.5, 7.3, 7.1);
SELECT fs.name AS species_name, AVG(wq.dissolved_oxygen) AS avg_dissolved_oxygen FROM fish_farms ff JOIN fish_species fs ON TRUE JOIN water_quality wq ON ff.id = wq.fish_farm_id AND fs.id = wq.fish_species_id WHERE ff.location LIKE '%%Southeast Asia%%' GROUP BY fs.name;