4.6.2.3. Quelle est la plus grande municipalité (aire) de la province ?


Cette requête utilise une mesure spatiale comme condition. Il y a plusieurs manières d'approcher ce problème, mais la plus efficace est la suivante :

postgis=# SELECT name, area(the_geom)/10000 AS hectares
          FROM bc_municipalite
          ORDER BY hectares DESC LIMIT 1;
     name      |    hectares
---------------+-----------------
TUMBLER RIDGE  | 155020.02556131
(1 row)

Vous remarquerez que pour répondre à cette question nous devons calculer l'aire de tous les polygones. Si nous faisons souvent cela, il serait judicieux d'ajouter une colonne "aire" à la table que nous pourrions alors indexer pour plus de performance. En ordonnant le résultat par ordre décroissant, et en utilisant la commende LIMIT de PostgreSQL nous pouvons aisément récupérer la plus grande valeur sans avoir à utiliser de fonction d'agrégation comme max().