#1 Tue 10 March 2020 15:36
- BenB
- Participant actif
- Date d'inscription: 29 Dec 2015
- Messages: 121
Requette pourcentage de surface
Bonjour,
Dans une base de données POSTGIS j'ai une table habitat de type polygone, j'ai besoin de connaitre pour chaque type d'habitat la somme des surfaces :
Code:
SELECT h.code_cb, c.lb_hab_fr, SUM(round(st_area(h.geom))) AS surface, LEFT JOIN ref_inpn.habref_cb c ON c.lb_code = h.code_cb GROUP BY h.code_cb, c.lb_hab_fr,
C'est ok, mais j'ai aussi besoin du pourcentage que représente cette surface par rapport à l'ensemble des habitats. Je me suis orienté vers les sous-requêtes :
Code:
SELECT h.code_cb, c.lb_hab_fr, SUM(round(st_area(h.geom))) AS surface, (Select (100*surface) / (SUM(round(st_area(h.geom)))) FROM "CMB_observatoire".t_habitat h) AS test LEFT JOIN ref_inpn.habref_cb c ON c.lb_code = h.code_cb GROUP BY h.code_cb, c.lb_hab_fr,
Le soucis est que la colonne surface n'existe pas pour la requête ... logique. Dois-je faire la sous requête dans la formule (100*surface) / (SUM(round(st_area(h.geom))))? ou existe-t-il un autre moyen ?
en vous remerciant.
Hors ligne
#2 Wed 11 March 2020 10:05
- tevrard
- Participant assidu
- Date d'inscription: 23 May 2016
- Messages: 320
Re: Requette pourcentage de surface
Tu dois pouvoir utiliser WITH
l'idée c'est de faire une/des table(s) temporaire(s) que tu vas utiliser dans un second temps.
https://docs.postgresql.fr/8.4/queries-with.html
Hors ligne
#3 Wed 11 March 2020 14:43
- ChristopheV
- Membre
- Lieu: Ajaccio
- Date d'inscription: 7 Sep 2005
- Messages: 3199
- Site web
Re: Requette pourcentage de surface
Bonjour
Bien vu c'est ce qu'il faut faire.
Christophe
L'avantage d'être une île c'est d'être une terre topologiquement close
Hors ligne