Olá a todos,

Tenho uma vista com dados da soma da superfície de Biomas por Pais. Com os
seguintes campos:
iso3166_2 -> codigo de pais
biome      -> bioma
area        -> superficie que ocupa esse bioma

SELECT * FROM vw_globalfires_country_biome;
"AD";"Temperate Broadleaf and Mixed Forests";0.0520229
"AE";"Deserts and Xeric Shrublands";6.20797
"AE";"Temperate Grasslands + Savannas + Shrublands";0.00838532
"AF";"Deserts and Xeric Shrublands";49.9593
"AF";"Montane Grasslands and Shrublands";10.8551
"AF";"Temperate Coniferous Forests";1.26231
"AG";"Deserts and Xeric Shrublands";0.0279382
"AG";"Tropical and Subtropical Dry Broadleaf Forests";0.00611668
"AG";"Tropical and Subtropical Moist Broadleaf Forests";0.00229229
(...)

Gostaria criar uma vista a partir da anterior onde aparecessem apenas os
biomas com maior área por pais.
A única maneira que encontro, è primeiro criar uma vista intermédia e a
partir de esta criar a definitiva, mas parece-me uma solução pouco elegante.
Algum me poderia indicar como criar esta vista sem uma vista/tabela
intermédia?

Esta foi a solução (pouco elegante) que encontrei:

CREATE OR REPLACE VIEW vw_globalfires_country_biome_max01 AS
 SELECT iso3166_2, max(area) AS area
   FROM vw_globalfires_country_biome
  GROUP BY iso3166_2;

CREATE OR REPLACE VIEW vw_globalfires_country_biome_max02 AS
 SELECT a.iso3166_2, b.biome, a.area
   FROM vw_globalfires_country_biome_max01 a, vw_globalfires_country_biome b
   WHERE a.area = b.area
  ORDER BY a.iso3166_2;

SELECT * FROM vw_globalfires_country_biome_max02;
"AD";"Temperate Broadleaf and Mixed Forests";0.0520229
"AE";"Deserts and Xeric Shrublands";6.20797
"AF";"Deserts and Xeric Shrublands";49.9593
"AG";"Deserts and Xeric Shrublands";0.0279382
(...)

Obrigado pela atenção. Cumprimentos,


Eloi Ribeiro
GIS Analyst
39,45º -4,40º
http://eloiribeiro.wordpress.com
_______________________________________________
pgbr-geral mailing list
[email protected]
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral

Responder a