Suite

Utilisation de MAX dans l'expression SQL d'ArcMap ModelBuilder


J'essaie d'utiliser une expression SQL afin de sélectionner des valeurs qui sont >= 25% de sa valeur maximale dans cette colonne. Par exemple,VALEUR >= MAX(VALEUR)*0.25, et ce seront finalement les points sélectionnés qu'il extraira.

Existe-t-il une syntaxe pour que cela se produise, ou vais-je devoir créer une nouvelle colonne et utiliser une calculatrice de champ dessus ?

Le plus gros problème avec cela est que je devrai le faire pour environ 250 fichiers. J'essaie également de créer ceci dans ModelBuilder.

Lorsque je l'essaye comme ci-dessus, il renvoie simplement qu'il y a une erreur avec l'expression.


La technique que j'utilise pour le faire dans ModelBuilder consiste à :

  1. Exécutez les statistiques récapitulatives (analyse) pour écrire la valeur MAX dans sa table de sortie
  2. Utilisez Get Field Value (ModelBuilder) pour lire la première ligne de la table qui vient d'être créée qui contient cette valeur MAX

Je pense que le problème que vous rencontrez est, avec votre expression telle quelle, cette condition que vous avez écrite est évaluée pour chaque ligne/enregistrement dans vos données. Donc, si vous aviez une table comme :

OID | Valeur 1 | 123 2 | 456 3 | 789

je crois comprendre que votre expression, avec des valeurs réelles substituées aux variables, ressemblerait à :

123 >= MAX(123)*0,25 456 >= MAX(456)*0,25 789 >= MAX(789)*0,25

Tout d'abord, vous devez vous assurer que votre champ de valeur est de type champ numérique (entier long/court, double, flottant). Ensuite, si cela est vrai, vous devez consulter le concept d'aide sur http://resources.arcgis.com/en/help/main/10.2/index.html#//00s500000033000000 et faire défiler jusqu'à la section sur les sous-requêtes et lisez cela car je pense que c'est ce que vous recherchez vraiment. Je ne connais pas vos noms de table et autres, donc je ne connais pas la requête exacte qui serait nécessaire, mais cela pourrait ressembler à quelque chose comme

VALEUR >= (SELECTIONNER MAX (VALEUR)*0.25 DE LA TABLE)

Cela devrait, espérons-le, vous amener au moins dans le stade du baseball. Si vous effectuez une sous-requête, elle évaluera chaque enregistrement (la première variable VALUE) par rapport aux résultats de la sous-requête (qui peut examiner la table entière et extraire une valeur MAX). À ma connaissance, avec la façon dont les options d'entrée SQL d'ArcGIS Desktop sont configurées, vous ne pouvez généralement utiliser que les fonctions telles que AVG, COUNT, MIN, MAX et SUM dans les sous-requêtes.