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


