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

Rencontres QGIS 2025

L'appel à participation est ouvert jusqu'au 19 janvier 2025!

#1 Wed 28 September 2022 09:01

Lferrad
Juste Inscrit !
Date d'inscription: 8 Oct 2018
Messages: 3

QGIS: Requete sur plusieurs colonnes d'attribut

Bonjour,

J'ai un shp avec de très nombreuses entités (des lignes) et de très nombreux attributs de même nature (des valeurs d'altitude calculées en différents points sur la ligne). Je voudrais ajouter une colonne Max et Min qui me donne pour chaque entité la valeur min et max pour l'ensemble des valeurs prises pour les différents attributs. Je ne trouve pas comment formuler ma requête pour calculer une telle valeur sur plusieurs colonnes à la fois.

En clair : comment calculer un minimum non pas sur une colonne pour un attribut donné mais sur une ligne, c'est-à-dire pour une entité et différents attributs.

Merci d'avance, Louis

Hors ligne

 

#2 Wed 28 September 2022 10:19

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

Re: QGIS: Requete sur plusieurs colonnes d'attribut

Avec la calculatrice de champ, vous pouvez faire ce genre calcul comme ceci, selon le nom de vous champs :

Code:

min("alt1","alt2","alt3", ... , "altN")

Les noms des champs sont écrits entre guillemets : "nomduchamp"

A vous d'adapter à votre contexte smile


Sylvain M.

Hors ligne

 

#3 Mon 03 October 2022 14:01

Lferrad
Juste Inscrit !
Date d'inscription: 8 Oct 2018
Messages: 3

Re: QGIS: Requete sur plusieurs colonnes d'attribut

Bonjour,

merci pour votre réponse. Et si j'ai un nombre de champs énorme et variable ? L'idée étant d'automatiser le traitement

Hors ligne

 

#4 Thu 06 October 2022 10:22

SANTANNA
Moderateur
Lieu: Angers
Date d'inscription: 18 Jan 2008
Messages: 3940

Re: QGIS: Requete sur plusieurs colonnes d'attribut

Bonjour,
Toujours avec la calculatrice des champs

Code:

with_variable( 'tousleschamps', -- on crée une variable
  attributes(), -- récupérant tous les champs de la couche
  with_variable('champs_cibles', -- et une autre variable (j'imagine qu'il y a des champs à ignorer)
    array_filter(map_akeys(@tousleschamps), @element not in ('NAME','USE')), -- contenant les champs qui nous intéressent (à vous d'adapter la liste)
    array_min( -- et pour chaque entité, on prend la valeur min de la liste
      array_foreach( 
        @champs_cibles, 
          attributes()[@element] -- générée à partir de la valeur de chacun des champs retenus
      )
    )
  )
)

Et comme je le dis souvent, même si j'ai commenté, je vous invite à lire l'aide associée à chacune des fonctions utilisée pour mieux comprendre ce qui s'y passe.

Hors ligne

 

Pied de page des forums

Powered by FluxBB