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

Les inscriptions sont ouvertes ! L'association GeoRezo sera présente.

#1 Thu 02 April 2026 10:02

pierre0547
Participant occasionnel
Date d'inscription: 10 Apr 2020
Messages: 11

attribut doublon séparé par une virgule

Bonjour,



Je souhaiterai pour un projet FME acquérir le ou les pôles attribués au futur bâtiment. Suite à quelques transformers dont une aggrégation, j'arrive à :



batiment 1 | POLE A

batiment 2 | POLE A, POLE A

batiment 3 | POLE A, POLE B, POLE A

batiment 4 | POLE B, POLE B, POLE B, POLE A



Ce que je souhaiterai avoir :



batiment 1 | POLE A

batiment 2 | POLE A

batiment 3 | POLE A, POLE B

batiment 4 | POLE B, POLE A



L'objectif est d'enlever les doublons, soit avoir POLE A soit POLE B ou POLE A, POLE B. Ne jamais avoir plusieurs fois POLE A ou B dans ma cellule.



Est-ce que vous avez déjà eu à faire cette manipulation et quels sont les transformers a utiliser dans FME ?



En vous remerciant,



Pierre SOULET

Hors ligne

 

#2 Thu 02 April 2026 13:13

pierre0547
Participant occasionnel
Date d'inscription: 10 Apr 2020
Messages: 11

Re: attribut doublon séparé par une virgule

Bonjour,


Je souhaiterai pour un projet FME acquérir le ou les pôles attribués au futur polygone. Suite à quelques transformers dont une aggrégation, j'arrive à :


batiment 1 | POLE A

batiment 2 | POLE A, POLE A

batiment 3 | POLE A, POLE B, POLE A

batiment 4 | POLE B, POLE B, POLE B, POLE A



Ce que je souhaiterai avoir :



batiment 1 | POLE A

batiment 2 | POLE A

batiment 3 | POLE A, POLE B

batiment 4 | POLE B, POLE A



L'objectif est d'enlever les doublons, soit avoir POLE A soit POLE B ou POLE A, POLE B. Ne jamais avoir plusieurs fois POLE A ou B dans ma cellule.



Est-ce que vous avez déjà eu à faire cette manipulation et quels sont les transformers a utiliser dans FME ?



En vous remerciant,



Pierre

Hors ligne

 

#3 Thu 02 April 2026 19:52

Sylvain M.
Participant assidu
Lieu: Saint-Pierre-des-Nids (53)
Date d'inscription: 8 Sep 2005
Messages: 1063

Re: attribut doublon séparé par une virgule

Je ne pratique pas FME, mais en SQL, ça peut se faire avec ces fonctions :
STRING_TO_ARRAY(votre_champ, ', ') : Convertit la chaîne en un tableau de valeurs, en utilisant ", " comme séparateur.
UNNEST(...) : Décompose le tableau en lignes individuelles.
DISTINCT TRIM(valeur) : Supprime les doublons et nettoie les espaces éventuels autour de chaque valeur.
STRING_AGG(..., ', ') : Recompose le tableau en une chaîne, en utilisant ", " comme séparateur.

Vous pouvez tester cette requête sur votre table :

Code:

SELECT
    nom_champ AS original,
    STRING_AGG(DISTINCT TRIM(valeur), ', ')
    FROM UNNEST(STRING_TO_ARRAY(nom_champ, ', ')) AS valeur
    AS nouveau_champ
FROM la_table;

Sylvain M.

Hors ligne

 

#4 Thu 02 April 2026 23:36

Benoit D
Participant assidu
Date d'inscription: 17 Jul 2018
Messages: 189

Re: attribut doublon séparé par une virgule

Bonjour,
Dans votre aggregator au lieu de concaténer les valeurs des PÔLES dans un attribut vous les ajoutez à une liste (option « generate list » et vous choisissez votre attribut Pôle). Puis vous utilisez ListDuplicateRemover. Vous pouvez ajouter un ListSorter pour les trier et que le pôle A soit toujours en premier.

Enfin si vous souhaitez la liste concaténée dans un attribut utilisez ListConcatenator.

Dernière modification par Benoit D (Thu 02 April 2026 23:39)

Hors ligne

 

#5 Aujourd'hui 11:20

conejo
Participant assidu
Lieu: Lunel
Date d'inscription: 2 Dec 2005
Messages: 1781

Re: attribut doublon séparé par une virgule

Bonjour

Vous pouvez aussi créer une ligne pour chaque occurrence comme par exemple
batiment 3 | POLE A, POLE B, POLE A

Cela donnera
batiment 3 | POLE A
batiment 3 | POLE B
batiment 3 | POLE A

Un duplicatefilter donnera
batiment 3 | POLE A
batiment 3 | POLE B

Ensuite avec l'aggregator vous aurez
batiment 3 | POLE A, POLE B

Hors ligne

 

Pied de page des forums

Copyright Association GeoRezo