Opérateur top-nestedtop-nested operator

Produit une agrégation hiérarchique et une sélection des valeurs principales, où chaque niveau est un raffinement du précédent.Produces a hierarchical aggregation and top values selection, where each level is a refinement of the previous one.

T | top-nested 3 of Location with others="Others" by sum(MachinesNumber), top-nested 4 of bin(Timestamp,5m) by sum(MachinesNumber)

L' top-nested opérateur accepte les données tabulaires comme entrée et une ou plusieurs clauses d’agrégation.The top-nested operator accepts tabular data as input, and one or more aggregation clauses. La première clause Aggregation (la plus à gauche) divise les enregistrements d’entrée en partitions, en fonction des valeurs uniques d’une expression sur ces enregistrements.The first aggregation clause (left-most) subdivides the input records into partitions, according to the unique values of some expression over those records. La clause conserve ensuite un certain nombre d’enregistrements qui agrandissent ou réduisent cette expression sur les enregistrements.The clause then keeps a certain number of records that maximize or minimize this expression over the records. La clause Aggregation suivante applique ensuite une fonction similaire, de manière imbriquée.The next aggregation clause then applies a similar function, in a nested fashion. Chaque clause suivante est appliquée à la partition produite par la clause précédente.Each following clause is applied to the partition produced by the previous clause. Ce processus se poursuit pour toutes les clauses d’agrégation.This process continues for all aggregation clauses.

Par exemple, l' top-nested opérateur peut être utilisé pour répondre à la question suivante : «pour une table contenant les chiffres des ventes, tels que le pays, le vendeur et le montant vendu : Quels sont les cinq premiers pays par vente ?For example, the top-nested operator can be used to answer the following question: "For a table containing sales figures, such as country, salesperson, and amount sold: what are the top five countries by sales? Quels sont les trois principaux représentants de chacun de ces pays ?»What are the top three salespeople in each of these countries?"

SyntaxeSyntax

T | top-nested TopNestedClause2 [ , TopNestedClause2...]T | top-nested TopNestedClause2 [, TopNestedClause2...]

TopNestedClause a la syntaxe suivante :Where TopNestedClause has the following syntax:

[N] of [ ExprName = ] Expr [ with others = ConstExpr ] by [ AggName = ] Aggregation asc | desc [][N] of [ExprName =] Expr [with others = ConstExpr] by [AggName =] Aggregation [asc | desc]

ArgumentsArguments

Pour chaque TopNestedClause:For each TopNestedClause:

  • N: Littéral de type long indiquant le nombre de premières valeurs à retourner pour ce niveau de hiérarchie.N: A literal of type long indicating how many top values to return for this hierarchy level. En cas d’omission, toutes les valeurs distinctes sont retournées.If omitted, all distinct values will be returned.

  • ExprName: Si ce paramètre est spécifié, définit le nom de la colonne de sortie correspondant aux valeurs de Expr .ExprName: If specified, sets the name of the output column corresponding to the values of Expr.

  • Expr: Expression sur l’enregistrement d’entrée indiquant la valeur à retourner pour ce niveau de hiérarchie.Expr: An expression over the input record indicating which value to return for this hierarchy level. En général, il s’agit d’une référence de colonne pour l’entrée tabulaire (T), ou d’un calcul (tel que bin() ) sur une telle colonne.Typically it's a column reference for the tabular input (T), or some calculation (such as bin()) over such a column.

  • ConstExpr: Si elle est spécifiée, pour chaque niveau de hiérarchie, 1 enregistrement est ajouté avec la valeur qui est l’agrégation sur tous les enregistrements qui n’ont pas été « en fait le haut ».ConstExpr: If specified, for each hierarchy level, 1 record will be added with the value that is the aggregation over all records that didn't "make it to the top".

  • AggName: Si ce paramètre est spécifié, cet identificateur définit le nom de colonne dans la sortie pour la valeur d' agrégation.AggName: If specified, this identifier sets the column name in the output for the value of Aggregation.

  • Aggregation: Expression numérique indiquant l’agrégation à appliquer à tous les enregistrements partageant la même valeur de Expr .Aggregation: A numeric expression indicating the aggregation to apply to all records sharing the same value of Expr. La valeur de cette agrégation détermine quel enregistrement obtenu est « Top ».The value of this aggregation determines which of the resulting records are "top".

    Les fonctions d’agrégation suivantes sont prises en charge :The following aggregation functions are supported:

  • asc ou desc (la valeur par défaut) peut sembler pour contrôler si la sélection est en fait du « bas » ou « supérieur » de la plage de valeurs agrégées.asc or desc (the default) may appear to control whether selection is actually from the "bottom" or "top" of the range of aggregated values.

RetoursReturns

Cet opérateur retourne une table qui comporte deux colonnes pour chaque clause Aggregation :This operator returns a table that has two columns for each aggregation clause:

  • Une colonne contient les valeurs distinctes du calcul de la clause Expr (avec le nom de colonne ExprName si elle est spécifiée)One column holds the distinct values of the clause's Expr calculation (having the column name ExprName if specified)

  • Une colonne contient le résultat du calcul de l' agrégation (avec le nom de colonne AggregationName si elle est spécifiée)One column holds the result of the Aggregation calculation (having the column name AggregationName if specified)

NotesNotes

Les colonnes d’entrée qui ne sont pas spécifiées comme Expr valeurs ne sont pas générées.Input columns that aren't specified as Expr values aren't outputted. Pour obtenir toutes les valeurs à un certain niveau, ajoutez un nombre d’agrégations qui :To get all values at a certain level, add an aggregation count that:

  • Omet la valeur de NOmits the value of N
  • Utilise le nom de colonne comme valeur de ExprUses the column name as the value of Expr
  • Utilise Ignore=max(1) comme agrégation, puis ignore (ou projeter) la colonne Ignore .Uses Ignore=max(1) as the aggregation, and then ignore (or project-away) the column Ignore.

Le nombre d’enregistrements peut croître de façon exponentielle avec le nombre de clauses d’agrégation ((N1 + 1) * (N2 + 1). * ..). La croissance des enregistrements est encore plus rapide si aucune limite n n’est spécifiée.The number of records may grow exponentially with the number of aggregation clauses ((N1+1) * (N2+1) * ...). Record growth is even faster if no N limit is specified. Prenez en compte que cet opérateur peut consommer une quantité considérable de ressources.Take into account that this operator may consume a considerable amount of resources.

Si la distribution de l’agrégation est considérablement non uniforme, limitez le nombre de valeurs distinctes à retourner (à l’aide de N) et utilisez l' with others= option ConstExpr pour obtenir une indication du « poids » de tous les autres cas.If the distribution of the aggregation is considerably non-uniform, limit the number of distinct values to return (by using N) and use the with others= ConstExpr option to get an indication for the "weight" of all other cases.

ExemplesExamples

StormEvents
| top-nested 2 of State by sum(BeginLat),
  top-nested 3 of Source by sum(BeginLat),
  top-nested 1 of EndLocation by sum(BeginLat)
StateState aggregated_Stateaggregated_State SourceSource aggregated_Sourceaggregated_Source EndLocationEndLocation aggregated_EndLocationaggregated_EndLocation
KANSASKANSAS 87771.235500000187771.2355000001 Respect des loisLaw Enforcement 18744,82318744.823 FT SCOTTFT SCOTT 264,858264.858
KANSASKANSAS 87771.235500000187771.2355000001 PubliquesPublic 22855,620622855.6206 BUCKLINBUCKLIN 488,2457488.2457
KANSASKANSAS 87771.235500000187771.2355000001 Observateur chevronnéTrained Spotter 21279,708321279.7083 SHARON SPGSSHARON SPGS 388,7404388.7404
TEXASTEXAS 123400,5101123400.5101 PubliquesPublic 13650,907913650.9079 AMARILLOAMARILLO 246,2598246.2598
TEXASTEXAS 123400,5101123400.5101 Respect des loisLaw Enforcement 37228,596637228.5966 PERRYTONPERRYTON 289,3178289.3178
TEXASTEXAS 123400,5101123400.5101 Observateur chevronnéTrained Spotter 13997,712413997.7124 CLAUDECLAUDE 421,44421.44

Utilisez l’option « avec d’autres » :Use the option 'with others':

StormEvents
| top-nested 2 of State with others = "All Other States" by sum(BeginLat),
  top-nested 3 of Source by sum(BeginLat),
  top-nested 1 of EndLocation with others = "All Other End Locations" by  sum(BeginLat)


StateState aggregated_Stateaggregated_State SourceSource aggregated_Sourceaggregated_Source EndLocationEndLocation aggregated_EndLocationaggregated_EndLocation
KANSASKANSAS 87771.235500000187771.2355000001 Respect des loisLaw Enforcement 18744,82318744.823 FT SCOTTFT SCOTT 264,858264.858
KANSASKANSAS 87771.235500000187771.2355000001 PubliquesPublic 22855,620622855.6206 BUCKLINBUCKLIN 488,2457488.2457
KANSASKANSAS 87771.235500000187771.2355000001 Observateur chevronnéTrained Spotter 21279,708321279.7083 SHARON SPGSSHARON SPGS 388,7404388.7404
TEXASTEXAS 123400,5101123400.5101 PubliquesPublic 13650,907913650.9079 AMARILLOAMARILLO 246,2598246.2598
TEXASTEXAS 123400,5101123400.5101 Respect des loisLaw Enforcement 37228,596637228.5966 PERRYTONPERRYTON 289,3178289.3178
TEXASTEXAS 123400,5101123400.5101 Observateur chevronnéTrained Spotter 13997,712413997.7124 CLAUDECLAUDE 421,44421.44
KANSASKANSAS 87771.235500000187771.2355000001 Respect des loisLaw Enforcement 18744,82318744.823 Tous les autres emplacements de finAll Other End Locations 18479,96518479.965
KANSASKANSAS 87771.235500000187771.2355000001 PubliquesPublic 22855,620622855.6206 Tous les autres emplacements de finAll Other End Locations 22367,374922367.3749
KANSASKANSAS 87771.235500000187771.2355000001 Observateur chevronnéTrained Spotter 21279,708321279.7083 Tous les autres emplacements de finAll Other End Locations 20890,967920890.9679
TEXASTEXAS 123400,5101123400.5101 PubliquesPublic 13650,907913650.9079 Tous les autres emplacements de finAll Other End Locations 13404,648113404.6481
TEXASTEXAS 123400,5101123400.5101 Respect des loisLaw Enforcement 37228,596637228.5966 Tous les autres emplacements de finAll Other End Locations 36939,278836939.2788
TEXASTEXAS 123400,5101123400.5101 Observateur chevronnéTrained Spotter 13997,712413997.7124 Tous les autres emplacements de finAll Other End Locations 13576,272413576.2724
KANSASKANSAS 87771.235500000187771.2355000001 Tous les autres emplacements de finAll Other End Locations 24891,083624891.0836
TEXASTEXAS 123400,5101123400.5101 Tous les autres emplacements de finAll Other End Locations 58523.293200000158523.2932000001
Tous les autres ÉtatsAll Other States 1149279,59231149279.5923 Tous les autres emplacements de finAll Other End Locations 1149279,59231149279.5923

La requête suivante affiche les mêmes résultats pour le premier niveau utilisé dans l’exemple ci-dessus.The following query shows the same results for the first level used in the example above.

 StormEvents
 | where State !in ('TEXAS', 'KANSAS')
 | summarize sum(BeginLat)
sum_BeginLatsum_BeginLat
1149279,59231149279.5923

Demandez une autre colonne (EventType) au résultat supérieur imbriqué.Request another column (EventType) to the top-nested result.

StormEvents
| top-nested 2 of State by sum(BeginLat),    top-nested 2 of Source by sum(BeginLat),    top-nested 1 of EndLocation by sum(BeginLat), top-nested of EventType  by tmp = max(1)
| project-away tmp
StateState aggregated_Stateaggregated_State SourceSource aggregated_Sourceaggregated_Source EndLocationEndLocation aggregated_EndLocationaggregated_EndLocation Type d’événementEventType
KANSASKANSAS 87771.235500000187771.2355000001 Observateur chevronnéTrained Spotter 21279,708321279.7083 SHARON SPGSSHARON SPGS 388,7404388.7404 Vent d’orageThunderstorm Wind
KANSASKANSAS 87771.235500000187771.2355000001 Observateur chevronnéTrained Spotter 21279,708321279.7083 SHARON SPGSSHARON SPGS 388,7404388.7404 GrêleHail
KANSASKANSAS 87771.235500000187771.2355000001 Observateur chevronnéTrained Spotter 21279,708321279.7083 SHARON SPGSSHARON SPGS 388,7404388.7404 TornadeTornado
KANSASKANSAS 87771.235500000187771.2355000001 PubliquesPublic 22855,620622855.6206 BUCKLINBUCKLIN 488,2457488.2457 GrêleHail
KANSASKANSAS 87771.235500000187771.2355000001 PubliquesPublic 22855,620622855.6206 BUCKLINBUCKLIN 488,2457488.2457 Vent d’orageThunderstorm Wind
KANSASKANSAS 87771.235500000187771.2355000001 PubliquesPublic 22855,620622855.6206 BUCKLINBUCKLIN 488,2457488.2457 CrueFlood
TEXASTEXAS 123400,5101123400.5101 Observateur chevronnéTrained Spotter 13997,712413997.7124 CLAUDECLAUDE 421,44421.44 GrêleHail
TEXASTEXAS 123400,5101123400.5101 Respect des loisLaw Enforcement 37228,596637228.5966 PERRYTONPERRYTON 289,3178289.3178 GrêleHail
TEXASTEXAS 123400,5101123400.5101 Respect des loisLaw Enforcement 37228,596637228.5966 PERRYTONPERRYTON 289,3178289.3178 CrueFlood
TEXASTEXAS 123400,5101123400.5101 Respect des loisLaw Enforcement 37228,596637228.5966 PERRYTONPERRYTON 289,3178289.3178 Crue soudaineFlash Flood

Donnez un ordre de tri d’index pour chaque valeur de ce niveau (par groupe) pour trier le résultat par le dernier niveau imbriqué (dans cet exemple, par EndLocation) :Give an index sort order for each value in this level (per group) to sort the result by the last nested level (in this example by EndLocation):

StormEvents
| top-nested 2 of State  by sum(BeginLat),    top-nested 2 of Source by sum(BeginLat),    top-nested 4 of EndLocation by  sum(BeginLat)
| order by State , Source, aggregated_EndLocation
| summarize EndLocations = make_list(EndLocation, 10000) , endLocationSums = make_list(aggregated_EndLocation, 10000) by State, Source
| extend indicies = range(0, array_length(EndLocations) - 1, 1)
| mv-expand EndLocations, endLocationSums, indicies
StateState SourceSource EndLocationsEndLocations endLocationSumsendLocationSums indexindices
TEXASTEXAS Observateur chevronnéTrained Spotter CLAUDECLAUDE 421,44421.44 00
TEXASTEXAS Observateur chevronnéTrained Spotter AMARILLOAMARILLO 316,8892316.8892 11
TEXASTEXAS Observateur chevronnéTrained Spotter DALHARTDALHART 252,6186252.6186 22
TEXASTEXAS Observateur chevronnéTrained Spotter PERRYTONPERRYTON 216,7826216.7826 33
TEXASTEXAS Respect des loisLaw Enforcement PERRYTONPERRYTON 289,3178289.3178 00
TEXASTEXAS Respect des loisLaw Enforcement LEAKEYLEAKEY 267,9825267.9825 11
TEXASTEXAS Respect des loisLaw Enforcement BRACKETTVILLEBRACKETTVILLE 264,3483264.3483 22
TEXASTEXAS Respect des loisLaw Enforcement GILMERGILMER 261,9068261.9068 33
KANSASKANSAS Observateur chevronnéTrained Spotter SHARON SPGSSHARON SPGS 388,7404388.7404 00
KANSASKANSAS Observateur chevronnéTrained Spotter ATWOODATWOOD 358,6136358.6136 11
KANSASKANSAS Observateur chevronnéTrained Spotter LENORALENORA 317,0718317.0718 22
KANSASKANSAS Observateur chevronnéTrained Spotter VILLE DE SCOTTSCOTT CITY 307,84307.84 33
KANSASKANSAS PubliquesPublic BUCKLINBUCKLIN 488,2457488.2457 00
KANSASKANSAS PubliquesPublic ASHLANDASHLAND 446,4218446.4218 11
KANSASKANSAS PubliquesPublic PROTÉGERPROTECTION 446,11446.11 22
KANSASKANSAS PubliquesPublic PARC D’ÉTATS MEADEMEADE STATE PARK 371,1371.1 33