#1 Fri 22 March 2024 12:53
- conejo
- Participant assidu
- Lieu: Lunel
- Date d'inscription: 2 Dec 2005
- Messages: 1668
Nombre de pylônes par commune
Bonjour,
Je dispose d'une liste de communes et de pylônes. Je désire avoir le nombre de pylônes par commune. Cela c'est ok avec le Spatialfilter puis Statisticscalculator.
Mais je veux aussi le numéro du support dans une nouvelle colonne. Si la commune a 7 pylônes, il y aura 7 colonnes décrivant chacune un pylône. Voir exemple joint.
Comment faire?
Merci.
Hors ligne
#2 Wed 27 March 2024 12:19
- Sylvain M.
- Participant assidu
- Lieu: Saint-Pierre-des-Nids (53)
- Date d'inscription: 8 Sep 2005
- Messages: 994
Re: Nombre de pylônes par commune
Salut @conejo
Sans vouloir faire de l'ombre à FME (que je n'utilise pas alors qu'il pourrait sans-doute m'aider), pour ce genre de requêtes, je trouve que le SQL est un langage universel et très efficace.
Très rapidement, et avec l'aide d'un célèbre "agent conversationnel", voici le genre de requête qu'il faudrait faire :
Code:
SELECT commune, COUNT(*) AS nombre_de_supports, MAX(CASE WHEN rn = 1 THEN numero_support ELSE NULL END) AS numero_support_1, MAX(CASE WHEN rn = 2 THEN numero_support ELSE NULL END) AS numero_support_2, MAX(CASE WHEN rn = 3 THEN numero_support ELSE NULL END) AS numero_support_3, -- Ajoutez autant de colonnes que de nombre de supports max FROM ( SELECT commune, numero_support, ROW_NUMBER() OVER (PARTITION BY commune ORDER BY numero_support) AS rn FROM pylones ) AS subquery GROUP BY commune;
C'est sans doute possible avec FME, mais l'intérêt du SQL c'est que tu pourra le faire avec QGis, Spatialite/SQlite, PostGis, Oracle, etc...
Sylvain M.
Hors ligne
#3 Wed 27 March 2024 22:25
- Benoit D
- Participant assidu
- Date d'inscription: 17 Jul 2018
- Messages: 150
Re: Nombre de pylônes par commune
Bonjour,
Ce n'est pas terrible d'avoir un schéma de donnée qui s'étend avec des colonnes en fonction du nombre d'entités. (D'ailleurs dans votre schéma il y a une coquille entre les pylônes 66 et 67)
Je ne passerais pas par Spatial Relator et Statistic Calculator mais plutôt par PointOnAreaOverlayer, en générant une liste sur les Area, puis sur les Area un ListIndexer pour avoir autant de colonne que de pylônes.
Personnellement j'aurais préféré au lieu d'un ListIndexer un ListConcatenator où j'aurais placé la liste concaténée des identifiants de pylônes dans une seule colonne.
Dernière modification par Benoit D (Wed 27 March 2024 22:27)
Hors ligne