Pages: 1
- Sujet précédent - Postgis : Dissoudre les geométries en conservant tous les attributs ? - Sujet suivant
#1 Aujourd'hui 15:52
- image95
- Participant assidu
- Date d'inscription: 6 Sep 2014
- Messages: 295
Postgis : Dissoudre les geométries en conservant tous les attributs ?
Bonjour,
Je me permets un message afin de savoir si avec postgis, il serait possible d'envisager de réaliser un "dissolve" :
https://docs.qgis.org/3.40/en/docs/user … l#dissolve
tout en conservant l'intégralité des valeurs attributaires ? Par exemple en utilisant une sorte de concaténation / agrégation au sein des nouvelles géométries résultats ?
J'ai regardé cet article : https://www.aproposinfosystems.com/en/a … -dissolve/
J'ai essayé de reproduire la proposition de mon coté avec ma table postgis contenant plusieurs polygones mais pour ma part ca ne fonctionne pas :
Code:
SELECT min(union_v4.max_hierar) as id, array_agg(union_v4.id) as ids, union_v6.geom FROM union_v4, (SELECT (ST_Dump(St_multi(ST_Union(geom)))).geom as geom FROM union_v6 WHERE st_intersects(union_v4.geom, union_v6.geom) GROUP BY union_v6.geom
J'obtiens :
Code:
ERROR: erreur de syntaxe à la fin de l'entrée LINE 12: GROUP BY union_v6.geom ^ ERREUR: erreur de syntaxe à la fin de l'entrée SQL state: 42601 Character: 285
Un grand merci.
Hors ligne
#2 Aujourd'hui 16:04
- tumasgiu
- Membre
- Lieu: Ajaccio
- Date d'inscription: 5 Jul 2010
- Messages: 1212
Re: Postgis : Dissoudre les geométries en conservant tous les attributs ?
Salut,
il vous manque une parenthèse :
Code:
SELECT min(union_v4.max_hierar) as id, array_agg(union_v4.id) as ids, union_v6.geom FROM union_v4, (SELECT (ST_Dump(St_multi(ST_Union(geom)))).geom as geom FROM union_v6 ) WHERE st_intersects(union_v4.geom, union_v6.geom) GROUP BY union_v6.geom
Hors ligne
#3 Aujourd'hui 16:14
- image95
- Participant assidu
- Date d'inscription: 6 Sep 2014
- Messages: 295
Re: Postgis : Dissoudre les geométries en conservant tous les attributs ?
Merci.
Voici ce que j'obtiens après ajout de la parenthèse :
Code:
SELECT min(union_v4.max_hierar) as id, array_agg(union_v4.id) as ids, union_v6.geom FROM union_v4, (SELECT (ST_Dump(St_multi(ST_Union(geom)))).geom as geom FROM union_v6) WHERE st_intersects(union_v4.geom, union_v6.geom) GROUP BY union_v6.geom
Code:
ERROR: la relation « union_v4 » n'existe pas LINE 6: union_v4, ^ ERREUR: la relation « union_v4 » n'existe pas SQL state: 42P01 Character: 110
ma table union_v4 est pourtant bien présente au sein de ma BDD postgis.
Hors ligne
Pages: 1
- Sujet précédent - Postgis : Dissoudre les geométries en conservant tous les attributs ? - Sujet suivant