Vous n'êtes pas identifié(e).
Bonjour à tous,
Tout et dans le titre avec en plus, un regroupement par condition.
Donc pour résumer,
1- j'ai plusieurs linestring dans une table1, avec un champ1 contenant des infos a,b,c,a,a,b,c,c,c par exemple
2- je veux regrouper en une seule multilinestring dans une table2, avec la condition de regroupement selon table1.champ1
Alors j'ai pondu un truc du style :
INSERT INTO table1 (wkb_geometry,champ1)
SELECT wkb_geometry,champ1 FROM table2
WHERE table2.wkb_geometry=st_multi(st_union('SELECT table1.wkb_geometry FROM table1 GROUP BY table1.champ1'));
Mais l'efficacité n'est pas au rendez-vous :-(
Avez-vous une idée de la piste à suivre?
Hors ligne
C'est un peu difficile à suivre:
Vous dites que vous voulez regrouper dans table2 alors que vous faites un insert dans table1…
Pouvez-vous reformuler ?
Marc.
Hors ligne
Euh oui en effet, j'avoue ne pas avoir été très clair sur ce coup là...mea culpa. Il s'agit bien d'un INSERT INTO table2...
Donc pour reformuler :
Initialement :
Table1 (LINESTRING) - Champ1 : a,b,c,a,a,b,c,c,c
Ce que je souhaite avoir :
Table2 (MULTILINESTRING) - Champ1 : a,b,c
Et donc le code qui ne fonctionne pas, mais que j'ai écris :
INSERT INTO table2 (wkb_geometry,champ1)
SELECT wkb_geometry,champ1 FROM table1
WHERE table1.wkb_geometry=st_multi(st_union('SELECT table1.wkb_geometry FROM table1 GROUP BY table1.champ1'));
Hors ligne