#1 Sun 28 July 2019 13:06
- fanou
- Participant occasionnel
- Date d'inscription: 26 Jul 2019
- Messages: 32
[Postgis]Equivalent GROUP_CONCAT
Bonjour,
Je dispose de 3 couches :
Une couche Rue, une couche Commune et une couche saisie IP.
L’utilisateur fait dans QGIS des polygones en éditant la couche saisie IP et je fais une vue qui me
donne le nom de la rue (ou des rues) et de la commune.
Code:
CREATE OR REPLACE VIEW lor.lor_suivi_ov AS select distinct row_number() OVER (order by a.id) ::integer as gid, a.id, a.geom, a.ip, a.annee, a.commentair, b.insee_com, substring(b.insee_com from 1 for 2) as departement, b.nom_comm, c.rue FROM admin.saisie_ip a , lor.lor_fdp_commune b, lor.lor_localisation_rue c WHERE ST_Intersects(a.geom,b.geom) and ST_Intersects(a.geom,c.geom);
Le problème est que je me retrouve avec des lignes en « double » contenant par exemple la même géométrie mais avec des rues différentes.
J’aimerais fusionner les lignes, en mettant toutes les rues dans la même colonne.
J'ai ça :
Gid id nom_comm rue
12 10 VILLERS ALL PICASSO
13 10 VILLERS ALL DALI
14 10 VILLERS ALL RENOIR
Je voudrais avoir ça :
Gid id nom_comm rue
12 10 VILLERS ALL PICASSO, ALL DALI, ALL RENOIR
Avez-vous des pistes ?
Hors ligne
#2 Sun 28 July 2019 15:40
- tumasgiu
- Membre
- Lieu: Ajaccio
- Date d'inscription: 5 Jul 2010
- Messages: 1160
Re: [Postgis]Equivalent GROUP_CONCAT
Salut,
Postgres possède deux fonctions d’agrégat de ce genre,
array_agg qui renvoie un tableau des valeurs à agréger,
et string_agg qui renvoie une chaine des valeurs séparées
par une chaine que l'on spécifie.
https://docs.postgresql.fr/10/functions-aggregate.html
Dernière modification par tumasgiu (Sun 28 July 2019 15:42)
En ligne
#3 Mon 29 July 2019 20:47
- fanou
- Participant occasionnel
- Date d'inscription: 26 Jul 2019
- Messages: 32
Re: [Postgis]Equivalent GROUP_CONCAT
Merci @tumasgiu, j'ai réussi avec array_ag.
Stéphane
Hors ligne