Nous utilisons des cookies pour vous garantir la meilleure expérience sur notre site. Si vous continuez à utiliser ce dernier, nous considèrerons que vous acceptez l'utilisation des cookies. J'ai compris ! ou En savoir plus !.
banniere

Le portail francophone de la géomatique


Toujours pas inscrit ? Mot de passe oublié ?
Nom d'utilisateur    Mot de passe              Toujours pas inscrit ?   Mot de passe oublié ?

Annonce

Printemps des cartes 2024

#1 Fri 04 February 2022 14:57

neskuik01
Participant assidu
Date d'inscription: 16 Feb 2015
Messages: 195

aggréger deux tableaux postgres

Bonjour

je cherche à mettre à jour une colonne "an_obs" de la table t1 qui a pour type integer []  avec des valeurs provenant d'un champ "année" de la table t2 également en integer [] . Je ne souhaite mettre à jour que si il y'a un intersection entre t1 et t2 ET pour les cas ou "an_obs" n'a pas de valeur et je ne veux pas avoir de doublons.

j'ai cette requête :

Code:

Update test.table1 t1
set an_obs = (select array_agg(a order by a) from (select distinct unnest(t1.an_obs || t2.annee))as a)
FROM test.table2 t2
where 
st_intersects(t1.geom, t2.geom) and t1.surf15 >0 and t1.an_obs is null
or
st_intersects(t1.geom, t2.geom) and t1.surf20 >0 and t1.an_obs is null
;

qui me retourne une erreur :

la colonne « an_obs » est de type integer[] mais l'expression est de type record[]


Et impossible de caster en integer[]

Hors ligne

 

#2 Fri 04 February 2022 16:17

neskuik01
Participant assidu
Date d'inscription: 16 Feb 2015
Messages: 195

Re: aggréger deux tableaux postgres

je poste la correction :

Code:

 
an_obs = (select array_agg(distinct x order by x ) from unnest(annee)as x )

Hors ligne

 

Pied de page des forums

Powered by FluxBB