Bonjour, ce code sympa me donne dans une colonne d'une liste de restaurants (sous forme de points, Postgis), à peu près le quartier dans laquelle ceux-ci se trouve (fonction ST_DWithin de Postgis qui va faire un cercle d'à peu près 1 km (=0,006 degrés de mesure de la Terre pour les tables ne faisant pas l'objet d'une projection géographique, coordonnées GPS simples [wgs84]) autour de ma liste de points de quartiers fr.local.quartier). Si il y plusieurs quartiers (parfois le commerce se situe à l'intersection de plusieurs quartiers), les noms apparaissent à la suite separés par des virgules. Charge à moi, de récuperer ces noms un par un dans Javascript (le client), avec split ou autre sur le caractère virgule.
Le résultat de l'exemple suivant, dans la cellule appellée pgquartier, est par exemple :
J'ai besoin d'aller plus loin. Je voudrais avoir le code du quartier avec, de cette maniere, avec un autre caractère scindant qui j'espère ne se trouvera pas dans les résultats (disons pour le moment, le caractère '+'):Châtelet,Saint-Eustache,Le Marais
Comment faire ? je me suis interessé à array_agg mais je ne vois pas comment ca me ferait additioner entre eux plusieurs array.Châtelet+342,Saint-Eustache+231,Le Marais+215
voici déjà le code d'aggrégation de noms simple de mon premier exemple.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 WITH croisement AS( SELECT a.name, a.id, string_agg(b.name, ',') as nameq FROM public.\"fr.poi.barrest\" a INNER JOIN public.\"fr.local.quartier\" b ON ST_DWithin(a.wkb_geometry, b.wkb_geometry, 0.006) GROUP BY a.name, a.id) UPDATE public.\"fr.poi.barrest\" tpb SET pgquartier = c.nameq FROM croisement c WHERE tpb.id = c.id
Partager