Message posté par : image95
----------------------------------------
Bonjour,
Avec postgis, j'ai exécuté script SQL qui contient une section dédiée à un
geotraitement d’agrégation :
A partir de plusieurs données sources qui contiennent chacune un id unique, celà permet de
récupèrer dans un champ d'une nouvelle table "resultat" une agrégation des
id pour chaque recouvrement/superposition de polygones :
Ci dessous, l'extrait du script :
Code:
-----------------
Code :
array_agg(l.id_unique) as data_id_ori
-----------------
Pour info, concernant cette table postgis, la colonne en sortie est de type bingint[]
lorsque je regarde sous pgadmin.
Un extrait ci dessous du résultat :
| |
| data_id_ori |
--------------------------|
| 27, 26, 17, 6, 1, 2, 15|
| |
| |
Maintenant, sous Qgis, lorsqu'on requête sur ce champ et qu'on souhaite par
exemple sélectionner uniquement les valeurs entités pour lesquelles data_id_ori = 1, Qgis
sélectionne bien les valeurs 1 mais également les chiffres 1 composant les 17, 15...
Cette limite vient de qgis : le problème est que le tableau d'entier est représenté
sous forme de texte. Qgis ne reconnait pas/ne lit pas ce champ comme un tableau de
nombres.
J'ai tenté sous qgis d'utiliser la fonction string_to_array qui permet de
transformer un tableau représenté par du texte en "vrai" tableau. Mais lors de
mes tentatives, j'ai en résultat que des valeurs NULL. Sauriez vous me dire ce qui ne
va pas ? Lorsqu'on utile la fonction string_to_array, le type de champ en sortie doit
il etre de type entier, flottant, autre ?
Un grand merci pour votre aide.
----------------------------------------
Le message est situé
https://georezo.net/forum/viewtopic.php?pid=374453#p374453
Pour y répondre : qgis_fr(a)ml.georezo.net ou reply de votre messagerie
Pour vous désabonner connectez-vous sur le forum puis Profil / Abonnement
--
Association GeoRezo - le portail géomatique
https://georezo.net