#1 Fri 04 February 2022 14:57
- neskuik01
- Participant assidu
- Date d'inscription: 16 Feb 2015
- Messages: 199
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: 199
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