Créer une couche de requête d’agrégation (Gestion des données)

Synthèse

Créer une couche de requête synthétisant, agrégeant et filtrant les tables DBMS dynamiquement en fonction de requêtes temporelles, par plage et attributaires à partir d’une table associée, et placer le résultat dans une couche d’entités.

En savoir plus sur l’agrégation de valeurs dans des entités associées

Utilisation

  • Les couches de requête fonctionnent uniquement avec des bases de données d’entreprise. Les géodatabases fichier ne sont pas des espaces de travail en entrée valides pour cet outil.

  • Les résultats agrégés sont toujours calculés dynamiquement au niveau de la base de données.

  • La valeur Couche en sortie est constituée de champs contenant le résultat de l’opération statistique. La statistique Total est incluse dans le champ ROW_COUNT par défaut.

  • Les opérations statistiques disponibles avec cet outil sont les suivantes : total, somme, moyenne, minimum, maximum et écart type.

  • Un champ est créé pour chaque type de statistique selon la convention d’affectation de noms suivante : COUNT_<field>, SUM_<field>, AVG_<field>, MIN_<field>, MAX_<field> et STDDEV_<field> (où <field> est le nom du champ en entrée pour lequel la statistique est calculée).

  • La valeur Champ de jointure associé est utilisée dans la clause Regrouper par de l’instruction SQL générée par cet outil. Les statistiques sont calculées séparément pour chaque valeur attributaire unique à partir de la valeur Champ de jointure associé.

  • La couche qui est créée par l’outil est temporaire et n’est pas conservée une fois la session terminée, sauf si le projet est enregistré, si la couche est enregistrée dans un fichier de couche ou si les données sont conservées via la réalisation d’une copie à l’aide de l’outil Copier des enregistrements ou Copier des entités.

Paramètres

ÉtiquetteExplicationType de données
Classe d’entités cible

Classe d’entités ou table spatiale d’une base de données d’entreprise.

Feature Class
Champ de jointure cible

Champ de la classe d’entités cible sur lequel la jointure est basée.

Field
Table associée

Table en entrée contenant les champs utilisés pour le calcul des statistiques. Les statistiques sont ajoutées à la valeur Couche en sortie.

Table; Feature Class
Champ de jointure associé

Champ dans la table de synthèse qui contient les valeurs sur lesquelles la jointure est basée. Les statistiques d’agrégation ou de synthèse sont également calculées séparément pour chaque valeur attributaire unique de ce champ.

Field
Couche en sortie

Nom en sortie de la couche de requête à créer

Feature Layer
Champ(s) de récapitulation
(Facultatif)

Spécifie le ou les champ(s) numérique(s) contenant les valeurs attributaires utilisées pour calculer les statistiques indiquées. Vous pouvez spécifier plusieurs combinaisons de statistiques et de champs. Les valeurs nulles sont exclues de tous les calculs statistiques.

La couche en sortie comprend un champ ROW_COUNT affichant le décompte total (ou la fréquence) de chaque valeur unique pour la valeur Champ de jointure associé. La différence entre le champ ROW_COUNT et le type de statistique Total est que ROW_COUNT inclut les valeurs nulles tandis que Total exclut ces valeurs.

Types de statistiques disponibles :

  • Total : recherche le nombre de valeurs incluses dans les calculs statistiques. Toutes les valeurs sont comptées à l’exception des valeurs nulles.
  • Somme : additionne les valeurs du champ spécifié.
  • Moyenne : calcule la moyenne du champ spécifié.
  • Minimum : recherche la valeur la plus faible parmi tous les enregistrements du champ spécifié.
  • Maximum : recherche la valeur la plus élevée parmi tous les enregistrements du champ spécifié.
  • Écart type : calcule l’écart type des valeurs du champ spécifié.
Value Table
Définitions des paramètres
(Facultatif)

Spécifie un ou plusieurs paramètres de requête pour les critères ou les conditions. Les enregistrements correspondant à ces critères sont utilisés lors du calcul des résultats agrégés. Un paramètre de requête est similaire à une variable d’instruction SQL dont la valeur est définie au moment de l’exécution de la requête. Vous pouvez ainsi changer dynamiquement les filtres de requête de la couche en sortie. Vous pouvez imaginer un paramètre comme un prédicat ou une condition dans une clause where SQL. Par exemple, Country_Name = 'Nigeria' dans une clause where SQL est appelé prédicat, dans lequel = est un opérateur de comparaison, Country_Name un nom de champ à gauche et 'Nigeria' une valeur à droite. Lorsque vous définissez plusieurs paramètres, vous devez spécifier un opérateur logique entre eux (par exemple, AND, OR, etc.).

En savoir plus sur la définition de paramètres dans une couche de requête

Lorsque cette option n’est pas spécifiée, tous les enregistrements de la table associée sont utilisés dans le calcul des résultats agrégés ou récapitulatifs.

Les deux types de définition de paramètre sont les suivants :

Les propriétés suivantes sont disponibles :

  • Type de paramètre : le type de paramètre peut être Plage ou Discret.
  • Nom : nom du paramètre, similaire à celui de la variable. Un nom ne peut pas contenir d’espaces ou de caractères spéciaux. Une fois la couche de requête en sortie créée et l’instruction SQL source de la couche vérifiée, ce nom dans l’instruction SQL qui définit la source de la couche de requête en sortie reçoit comme préfixe ::r: (pour le paramètre Plage) ou :: (pour le paramètre Discret).
  • Alias : l’alias du nom du paramètre. L’alias peut comprendre des espaces et des caractères spéciaux.
  • Champ ou expression : nom de champ ou expression SQL valide à utiliser dans la partie gauche d’un prédicat ou dans la condition d’une clause where.
  • Type de données : type de données du champ ou de l’expression spécifié dans la colonne Champ ou expression. Lorsque la valeur de Type de paramètre est Plage, la valeur de la colonne Type de données ne peut pas être Chaîne.
    • Date : le type de données du champ ou de l’expression est Date (date heure).
    • Chaîne : le type de données du champ ou de l’expression est Chaîne (texte).
    • Entier : le type de données du champ ou de l’expression est Entier (nombre entier).
    • Double : le type de données du champ ou de l’expression est Double (nombre fractionnel).
  • Valeur de début : valeur de début par défaut de la colonne Plage. Il s’agit de la valeur utilisée lorsque le curseur temporel ou de plage n’est pas activé. Lorsque la valeur des colonnes Valeur de début et Valeur de fin est omise et que le curseur temporel ou de plage est désactivé, tous les enregistrements de la table associée sont utilisés pour calculer les résultats agrégés. Cette valeur est ignorée lorsque la colonne Type de paramètre est définie sur Discret.
  • Valeur de fin : valeur de fin par défaut du paramètre Plage. Il s’agit de la valeur utilisée lorsque le curseur temporel ou de plage n’est pas activé. Lorsque la valeur des colonnes Valeur de début et Valeur de fin est omise et que le curseur temporel ou de plage est désactivé, tous les enregistrements de la table associée sont utilisés pour calculer les résultats agrégés. Cette valeur est ignorée lorsque la colonne Type de paramètre est définie sur Discret.
  • Opérateur du paramètre Discret : opérateur de comparaison utilisé entre la valeur de la colonne Champ ou expression et une valeur dans un prédicat ou une condition SQL.
    • Aucun : choisissez Aucun lorsque la valeur Type de paramètre est définie sur Plage.
    • Égal à : vérifie si un champ ou une expression sont égaux à une valeur.
    • Non égal à : vérifie si un champ ou une expression ne sont pas égaux à une valeur.
    • Supérieur à : vérifie si un champ ou une expression sont supérieurs à une valeur.
    • Inférieur à : vérifie si un champ ou une expression sont inférieurs à une valeur.
    • Inclut les valeurs : détermine si une valeur d’un champ ou d’une expression correspond à une valeur de la liste.
  • Valeurs Discret par défaut : lorsque la valeur Type de paramètre est Discret, vous devez spécifier une valeur par défaut. Lorsque la valeur Opérateur du paramètre Discret est Inclut les valeurs, vous pouvez spécifier plusieurs valeurs séparées par des virgules (par exemple, VANDALISM,BURGLARY/THEFT).
  • Opérateur du paramètre Suivant : opérateur logique entre cet opérateur et le suivant. Cette colonne n’est applicable que si vous disposez de plusieurs définitions de paramètre.
    • Aucun : choisissez Aucun s’il n’y a plus de paramètres.
    • Et : combine deux conditions et sélectionne un enregistrement si les deux conditions sont vraies.
    • Ou : combine deux conditions et sélectionne un enregistrement si au moins une condition est vraie.
Value Table
Champ(s) d’identifiant unique
(Facultatif)

Champs d’identifiant unique utilisés pour identifier de manière unique chaque ligne d’une table.

String
Type de forme
(Facultatif)

Spécifie le type de forme de la couche de requête. Seuls les enregistrements du jeu de résultats de la requête qui correspondent au type de forme spécifié sont utilisés dans la couche de requête en sortie. Par défaut, le type de forme du premier enregistrement dans le jeu de résultats est utilisé. Ce paramètre est ignoré si le jeu de résultats de la requête ne renvoie pas de champ de géométrie.

  • PointLa couche de requête en sortie utilise la géométrie de type Point.
  • Multi-pointLa couche de requête en sortie utilise la géométrie de type Multi-point.
  • PolygoneLa couche de requête en sortie utilise la géométrie de type Polygone.
  • PolyligneLa couche de requête en sortie utilise la géométrie de type Polyligne.
String
ID de référence spatiale (SRID)
(Facultatif)

La valeur d’identifiant de référence spatiale (SRID) pour les requêtes retournant une géométrie. Seuls les enregistrements du jeu de résultats de la requête qui correspondent à la valeur SRID spécifiée sont utilisés dans la couche de requête en sortie. Par défaut, la valeur SRID du premier enregistrement dans le jeu de résultats est utilisée. Ce paramètre est ignoré si le jeu de résultats de la requête ne renvoie pas de champ de géométrie.

String
Système de coordonnées
(Facultatif)

Le système de coordonnées qui sera utilisé par la couche de requête en sortie. Par défaut, la référence spatiale du premier enregistrement dans le jeu de résultats est utilisée. Ce paramètre est ignoré si le jeu de résultats de la requête ne renvoie pas de champ de géométrie.

Spatial Reference
Les coordonnées comportent des valeurs M
(Facultatif)

Indique si la couche en sortie contient des mesures linéaires (valeurs m).

  • Coché : la couche contient des valeurs m.
  • Décoché : la couche ne contient pas de valeurs m. Il s’agit de l’option par défaut.
Boolean
Les coordonnées comportent des valeurs Z
(Facultatif)

Indique si la couche en sortie contient des valeurs d’élévation (valeurs z).

  • Coché : la couche contient des valeurs z.
  • Décoché : la couche ne contient pas de valeurs z. Il s’agit de l’option par défaut.
Boolean
Étendue
(Facultatif)

Définit l’étendue de la couche. L’étendue doit inclure toutes les entités de la table.

  • Current Display Extent (Étendue actuellement affichée) Vue cartographique : l’étendue repose sur la carte ou la scène active. Cette option est uniquement disponible lorsqu’une carte est active.
  • Extent of a Layer (Étendue d’une couche) Couche : l’étendue repose sur une couche de carte active. Utilisez la liste déroulante pour choisir une couche disponible ou utilisez l’option Extent of data in all layers (Étendue des données dans toutes les couches) pour obtenir l’étendue combinée de toutes les couches de carte actives, y compris le fond de carte. Cette option est uniquement disponible lorsqu’une carte avec des couches est active.
  • Browse (Parcourir) Parcourir : l’étendue repose sur un jeu de données existant.
  • Reset Extent (Réinitialiser l’étendue) Réinitialiser : la valeur par défaut de l’étendue est rétablie.
  • Manually entered coordinates (Coordonnées saisies manuellement) : les coordonnées doivent être des valeurs numériques incluses dans le système de coordonnées de la carte active.

    La carte peut utiliser des unités d’affichage différentes

Extent

arcpy.management.MakeAggregationQueryLayer(target_feature_class, target_join_field, related_table, related_join_field, out_layer, {statistics}, {parameter_definitions}, {oid_fields}, {shape_type}, {srid}, {spatial_reference}, {m_values}, {z_values}, {extent})
NomExplicationType de données
target_feature_class

Classe d’entités ou table spatiale d’une base de données d’entreprise.

Feature Class
target_join_field

Champ de la classe d’entités cible sur lequel la jointure est basée.

Field
related_table

Table en entrée contenant les champs utilisés pour le calcul des statistiques. Les statistiques sont ajoutées à la valeur out_layer.

Table; Feature Class
related_join_field

Champ dans la table de synthèse qui contient les valeurs sur lesquelles la jointure est basée. Les statistiques d’agrégation ou de synthèse sont également calculées séparément pour chaque valeur attributaire unique de ce champ.

Field
out_layer

Nom en sortie de la couche de requête à créer

Feature Layer
statistics
[[statistic_type, field],...]
(Facultatif)

Spécifie le ou les champ(s) numérique(s) contenant les valeurs attributaires utilisées pour calculer les statistiques indiquées. Vous pouvez spécifier plusieurs combinaisons de statistiques et de champs. Les valeurs nulles sont exclues de tous les calculs statistiques.

La couche en sortie comprend un champ ROW_COUNT affichant le décompte total (ou la fréquence) de chaque valeur unique pour la valeur related_join_field. La différence entre le champ ROW_COUNT et le type de statistique COUNT est que ROW_COUNT inclut les valeurs nulles tandis que COUNT exclut ces valeurs.

  • COUNT : recherche le nombre de valeurs incluses dans les calculs statistiques. Toutes les valeurs sont comptées à l’exception des valeurs nulles.
  • SUM : additionne les valeurs du champ spécifié.
  • AVG : calcule la moyenne du champ spécifié.
  • MIN : recherche la valeur la plus faible parmi tous les enregistrements du champ spécifié.
  • MAX : recherche la valeur la plus élevée parmi tous les enregistrements du champ spécifié.
  • STDDEV : calcule l’écart type des valeurs du champ spécifié.
Value Table
parameter_definitions
[[parameter_def_type, name, alias, field_or_expression, data_type, start_value, end_value, operator, default_value, operator_for_next_parameter],...]
(Facultatif)

Spécifie un ou plusieurs paramètres de requête pour les critères ou les conditions. Les enregistrements correspondant à ces critères sont utilisés lors du calcul des résultats agrégés. Un paramètre de requête est similaire à une variable d’instruction SQL dont la valeur est définie au moment de l’exécution de la requête. Vous pouvez ainsi changer dynamiquement les filtres de requête de la couche en sortie. Vous pouvez imaginer un paramètre comme un prédicat ou une condition dans une clause where SQL. Par exemple, Country_Name = 'Nigeria' dans une clause where SQL est appelé prédicat, dans lequel = est un opérateur de comparaison, Country_Name un nom de champ à gauche et 'Nigeria' une valeur à droite. Lorsque vous définissez plusieurs paramètres, vous devez spécifier un opérateur logique entre eux (par exemple, AND, OR, etc.).

En savoir plus sur la définition de paramètres dans une couche de requête

Lorsque cette option n’est pas spécifiée, tous les enregistrements de la table associée sont utilisés dans le calcul des résultats agrégés ou récapitulatifs.

Les deux types de définition de paramètre sont les suivants :

Les propriétés suivantes sont disponibles :

  • Type de paramètre : le type de paramètre peut être RANGE ou DISCRETE.
  • Nom : nom du paramètre, similaire à celui d’une variable. Un nom ne peut pas contenir d’espaces ou de caractères spéciaux. Une fois la couche de requête en sortie créée et l’instruction SQL source de la couche vérifiée, ce nom dans l’instruction SQL qui définit la source de la couche de requête en sortie reçoit comme préfixe ::r: (pour le paramètre Plage) ou :: (pour le paramètre Discret).
  • Alias : alias du nom du paramètre. L’alias peut comprendre des espaces et des caractères spéciaux.
  • Champ ou expression : nom de champ ou expression SQL valide à utiliser dans la partie gauche d’un prédicat ou dans la condition d’une clause where.
  • Type de données : type de données du champ ou de l’expression spécifié dans la colonne Champ ou expression. Lorsque la valeur de Type de paramètre est RANGE, la valeur de la colonne Type de données ne peut pas être STRING.
    • DATE : le type de données du champ ou de l’expression est Date (date heure).
    • STRING : le type de données du champ ou de l’expression est Chaîne (texte).
    • INTEGER : le type de données du champ ou de l’expression est Entier (nombre entier).
    • DOUBLE : le type de données du champ ou de l’expression est Double (nombre fractionnel).
  • Valeur de début : valeur de début par défaut de la colonne RANGE. Il s’agit de la valeur utilisée lorsque le curseur temporel ou de plage n’est pas activé. Lorsque la valeur des colonnes Valeur de début et Valeur de fin est omise et que le curseur temporel ou de plage est désactivé, tous les enregistrements de la table associée sont utilisés pour calculer les résultats agrégés. Cette valeur est ignorée lorsque la colonne Type de paramètre est définie sur DISCRETE.
  • Valeur de fin : valeur de fin par défaut du paramètre RANGE. Il s’agit de la valeur utilisée lorsque le curseur temporel ou de plage n’est pas activé. Lorsque la valeur des colonnes Valeur de début et Valeur de fin est omise et que le curseur temporel ou de plage est désactivé, tous les enregistrements de la table associée sont utilisés pour calculer les résultats agrégés. Cette valeur est ignorée lorsque la colonne Type de paramètre est définie sur DISCRETE.
  • Opérateur du paramètre Discret : opérateur de comparaison utilisé entre la valeur de la colonne Champ ou expression et une valeur dans un prédicat ou une condition SQL.
    • NONE : choisissez NONE lorsque la valeur Type de paramètre est définie sur RANGE.
    • EQUAL TO : vérifie si un champ ou une expression sont égaux à une valeur.
    • NOT EQUAL TO : vérifie si un champ ou une expression ne sont pas égaux à une valeur.
    • GREATER THAN : vérifie si un champ ou une expression sont supérieurs à une valeur.
    • LESS THAN : vérifie si un champ ou une expression sont inférieurs à une valeur.
    • INCLUDE VALUES : détermine si une valeur d’un champ ou d’une expression correspond à une valeur de la liste.
  • Valeurs Discret par défaut : lorsque la valeur Type de paramètre est DISCRETE, vous devez spécifier une valeur par défaut. Lorsque la valeur Opérateur du paramètre Discret est INCLUDE VALUES, vous pouvez spécifier plusieurs valeurs séparées par des virgules (par exemple, VANDALISM,BURGLARY/THEFT).
  • Opérateur du paramètre Suivant : opérateur logique entre cet opérateur et le suivant. Cette colonne n’est applicable que si vous disposez de plusieurs définitions de paramètre.
    • NONE : choisissez NONE s’il n’y a plus de paramètres.
    • AND : combine deux conditions et sélectionne un enregistrement si les deux conditions sont vraies.
    • OR : combine deux conditions et sélectionne un enregistrement si au moins une condition est vraie.
Value Table
oid_fields
[oid_fields,...]
(Facultatif)

Champs d’identifiant unique utilisés pour identifier de manière unique chaque ligne d’une table.

String
shape_type
(Facultatif)

Spécifie le type de forme de la couche de requête. Seuls les enregistrements du jeu de résultats de la requête qui correspondent au type de forme spécifié sont utilisés dans la couche de requête en sortie. Par défaut, le type de forme du premier enregistrement dans le jeu de résultats est utilisé. Ce paramètre est ignoré si le jeu de résultats de la requête ne renvoie pas de champ de géométrie.

  • POINTLa couche de requête en sortie utilise la géométrie de type Point.
  • MULTIPOINTLa couche de requête en sortie utilise la géométrie de type Multi-point.
  • POLYGONLa couche de requête en sortie utilise la géométrie de type Polygone.
  • POLYLINELa couche de requête en sortie utilise la géométrie de type Polyligne.
String
srid
(Facultatif)

La valeur d’identifiant de référence spatiale (SRID) pour les requêtes retournant une géométrie. Seuls les enregistrements du jeu de résultats de la requête qui correspondent à la valeur SRID spécifiée sont utilisés dans la couche de requête en sortie. Par défaut, la valeur SRID du premier enregistrement dans le jeu de résultats est utilisée. Ce paramètre est ignoré si le jeu de résultats de la requête ne renvoie pas de champ de géométrie.

String
spatial_reference
(Facultatif)

Le système de coordonnées qui sera utilisé par la couche de requête en sortie. Par défaut, la référence spatiale du premier enregistrement dans le jeu de résultats est utilisée. Ce paramètre est ignoré si le jeu de résultats de la requête ne renvoie pas de champ de géométrie.

Spatial Reference
m_values
(Facultatif)

Indique si la couche en sortie contient des mesures linéaires (valeurs m).

  • INCLUDE_M_VALUESLa couche contient des valeurs m.
  • DO_NOT_INCLUDE_M_VALUESLa couche ne contient pas de valeurs m. Il s’agit de l’option par défaut.
Boolean
z_values
(Facultatif)

Indique si la couche en sortie contient des valeurs d’élévation (valeurs z).

  • INCLUDE_Z_VALUESLa couche contient des valeurs z.
  • DO_NOT_INCLUDE_Z_VALUESLa couche ne contient pas de valeurs z. Il s’agit de l’option par défaut.
Boolean
extent
(Facultatif)

Définit l’étendue de la couche. L’étendue doit inclure toutes les entités de la table.

  • MAXOF : l’étendue maximale de toutes les entrées est utilisée.
  • MINOF : l’étendue minimale commune à toutes les entrées est utilisée.
  • DISPLAY : l’étendue est égale à l’affichage visible.
  • Nom de la couche : l’étendue de la couche spécifiée est utilisée.
  • Objet Extent : l’étendue de l’objet spécifié est utilisée.
  • Chaîne délimitée par des espaces de coordonnées géographiques : l’étendue de la chaîne spécifiée est utilisée. Les coordonnées sont exprimées dans l’ordre x-min, y-min, x-max, y-max.
Extent

Exemple de code

Exemple 1 d’utilisation de la fonction MakeAggregationQueryLayer (fenêtre Python)

Le script ci-dessous pour la fenêtre Python indique comment calculer le nombre total de délits pour chaque district à partir d’une classe d’entités ponctuelles, et ajouter le résultat obtenu à une classe d’entités Districts de police.

import arcpy
arcpy.env.workspace = "C:/data/localhost.sde"
arcpy.management.MakeAggregationQueryLayer(
    "PoliceDistricts", "district", "Crime_locations", "PdDistrict", "SF_Crimes")
Exemple 2 d’utilisation de la fonction MakeAggregationQueryLayer (fenêtre Python)

Le script ci-dessous pour la fenêtre Python indique comment calculer le nombre total de délits pour chaque district et pour chaque type de délit à partir d’une classe d’entités ponctuelles, et ajouter le résultat obtenu à une classe d’entités Districts de police.

import arcpy
arcpy.env.workspace = "C:/data/localhost.sde"
arcpy.management.MakeAggregationQueryLayer(
    "PoliceDistricts", "district", "Crime_locations", "PdDistrict", "SF_Crimes", 
    None, 
    "DISCRETE crime_type # Category STRING # # 'INCLUDE VALUES' 'VANDALISM, BURGLARY/THEFT' NONE")
Exemple 3 d’utilisation de la fonction MakeAggregationQueryLayer (fenêtre Python)

Le script ci-dessous pour la fenêtre Python indique comment calculer les précipitations totales et moyennes à partir d’une table de série chronologique, et ajouter le résultat obtenu à une classe d’entités Stations météo.

import arcpy
arcpy.env.workspace = "C:/data/localhost.sde"
arcpy.management.MakeAggregationQueryLayer(
    "weather_stations", "station_id", "observed_rainfall", "station_id", 
    "Total_Rainfall", [["SUM", "rainfall_inch"], ["MIN", "rainfall_inch"]])
Exemple 4 d’utilisation de la fonction MakeAggregationQueryLayer (fenêtre Python)

Le script ci-dessous pour la fenêtre Python indique comment calculer les précipitations totales et moyennes à partir d’une table de série chronologique pour n’importe quelle fenêtre temporelle, et ajouter le résultat obtenu à une classe d’entités Stations météo.

import arcpy
arcpy.env.workspace = "C:/data/localhost.sde"
arcpy.management.MakeAggregationQueryLayer(
    "weather_stations", "station_id", "observed_rainfall", "station_id", 
    "Total_Rainfall", [["SUM", "rainfall_inch"], ["MIN", "rainfall_inch"]], 
    "RANGE TimeVar # collection_date DATE 1/1/2020 12/1/2020 NONE # NONE")

Informations de licence

  • Basic: Non
  • Standard: Non
  • Advanced: Oui

Rubriques connexes