Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
Applies to: ✅Microsoft Fabric✅Azure Data Explorer✅Azure Monitor✅Microsoft Sentinel
Génère une table qui agrège le contenu de la table d’entrée.
Syntax
T| summarize [ SummarizeParameters ] [[Column=] Aggregation [, ...]] [by [Column=] GroupExpression [, ...]]
Learn more about syntax conventions.
Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| Column | string |
Le nom de la colonne de résultat. Prend par défaut un nom dérivé de l’expression. | |
| Aggregation | string |
✔️ | A call to an aggregation function such as count() or avg(), with column names as arguments. |
| GroupExpression | scalar | ✔️ | expression scalaire qui peut faire référence aux données d’entrée. La sortie comporte autant d’enregistrements qu’il existe des valeurs distinctes de toutes les expressions de groupe. |
| SummarizeParameters | string |
Zero or more space-separated parameters in the form of Name=Value that control the behavior. See supported parameters. |
Note
When the input table is empty, the output depends on whether GroupExpression is used:
- If GroupExpression isn't provided, the output is a single (empty) row.
- If GroupExpression is provided, the output has no rows.
Supported parameters
| Name | Description |
|---|---|
hint.num_partitions |
Spécifie le nombre de partitions utilisées pour partager la charge de requête sur les nœuds de cluster. See shuffle query |
hint.shufflekey=<key> |
La requête shufflekey partage la charge de requête sur les nœuds de cluster à l’aide d’une clé pour partitionner les données. See shuffle query |
hint.strategy=shuffle |
La requête de stratégie shuffle partage la charge de requête sur les nœuds de cluster, où chaque nœud traite une partition des données. See shuffle query |
Returns
Les lignes d’entrée sont organisées en groupes ayant les mêmes valeurs que les expressions by . Ensuite, les fonctions d’agrégation spécifiées sont calculées sur chaque groupe, générant une ligne pour chaque groupe. Le résultat contient les colonnes by et au moins une colonne pour chaque agrégation calculée. (Certaines fonctions d’agrégation retournent plusieurs colonnes.)
Le résultat a autant de lignes qu’il existe des combinaisons distinctes de by valeurs (qui peuvent être zéro). Si aucune clé de groupe n’est fournie, le résultat comporte un seul enregistrement.
Pour générer une synthèse sur des plages de valeurs numériques, utilisez bin() pour limiter les plages aux valeurs discrètes.
Note
- Bien que vous puissiez fournir des expressions arbitraires pour les expressions d’agrégation et de regroupement, il est plus efficace d’utiliser des noms de colonne simples ou d’appliquer
bin()à une colonne numérique. - Les compartiments horaires automatiques pour les colonnes datetime ne sont plus pris en charge. Utilisez à la place le binning explicite. Par exemple :
summarize by bin(timestamp, 1h).
Valeurs par défaut des agrégations
Le tableau suivant récapitule les valeurs par défaut des agrégations :
| Operator | Default value |
|---|---|
count(), , countif(), , dcount()dcountif()count_distinct()sum()sumif()variance()varianceif()stdev()stdevif() |
0 |
make_bag(), , make_bag_if(), make_list()make_list_if(), , make_set()make_set_if() |
tableau dynamique vide ([]) |
| All others | null |
Note
Lorsque vous appliquez ces agrégats à des entités qui incluent des valeurs null, les valeurs null sont ignorées et ne sont pas prises en compte dans le calcul. See Examples.
Examples
The examples in this article use publicly available tables in the help cluster, such as the
StormEventstable in the Samples database.
The examples in this article use publicly available tables, such as the
Weathertable in the Weather analytics sample gallery. Vous devrez peut-être modifier le nom de la table dans l’exemple de requête pour qu’elle corresponde à la table de votre espace de travail.
L’exemple suivant détermine les combinaisons uniques des StateEventType tempêtes qui ont entraîné des blessures directes. Il n’existe aucune fonction d’agrégation, mais uniquement des clés de regroupement. La sortie affiche uniquement les colonnes de ces résultats.
StormEvents
| where InjuriesDirect > 0
| summarize by State, EventType
Output
Le tableau suivant montre uniquement les 5 premières lignes. Pour voir la sortie complète, exécutez la requête.
| State | EventType |
|---|---|
| TEXAS | Thunderstorm Wind |
| TEXAS | Flash Flood |
| TEXAS | Winter Weather |
| TEXAS | High Wind |
| TEXAS | Flood |
| ... | ... |
L’exemple suivant recherche les tempêtes de pluies minimales et maximales à Hawaii. Comme il n’y a pas de clause group-by, la sortie contient une seule ligne.
StormEvents
| where State == "HAWAII" and EventType == "Heavy Rain"
| project Duration = EndTime - StartTime
| summarize Min = min(Duration), Max = max(Duration)
Output
| Min | Max |
|---|---|
| 01:08:00 | 11:55:00 |
L’exemple suivant calcule le nombre de types d’événements storm uniques pour chaque état et trie les résultats en fonction du nombre de types storm uniques :
StormEvents
| summarize TypesOfStorms=dcount(EventType) by State
| sort by TypesOfStorms
Output
Le tableau suivant montre uniquement les 5 premières lignes. Pour voir la sortie complète, exécutez la requête.
| State | TypesOfStorms |
|---|---|
| TEXAS | 27 |
| CALIFORNIA | 26 |
| PENNSYLVANIA | 25 |
| GEORGIA | 24 |
| ILLINOIS | 23 |
| ... | ... |
L’exemple suivant calcule un histogramme des types d’événements orageux qui ont enregistré des tempêtes de plus de 1 jour. Étant donné que Duration a de nombreuses valeurs, utilisez bin() pour regrouper ses valeurs par intervalles de 1 jour.
StormEvents
| project EventType, Duration = EndTime - StartTime
| where Duration > 1d
| summarize EventCount=count() by EventType, Length=bin(Duration, 1d)
| sort by Length
Output
| EventType | Length | EventCount |
|---|---|---|
| Drought | 30.00:00:00 | 1646 |
| Wildfire | 30.00:00:00 | 11 |
| Heat | 30.00:00:00 | 14 |
| Flood | 30.00:00:00 | 20 |
| Heavy Rain | 29.00:00:00 | 42 |
| ... | ... | ... |
L’exemple suivant montre les valeurs par défaut des agrégats lorsque la table d’entrée est vide. L’opérateur summarize est utilisé pour calculer les valeurs par défaut des agrégats.
Lorsque l’entrée de l’opérateur summarize a au moins une clé de regroupement vide, le résultat est également vide.
Lorsque l’entrée de l’opérateur summarize n’a pas de clé de regroupement vide, le résultat inclut les valeurs par défaut des agrégations utilisés dans summarize Pour plus d’informations, consultez Valeurs par défaut des agrégations.
datatable(x:long)[]
| summarize any_x=take_any(x), arg_max_x=arg_max(x, *), arg_min_x=arg_min(x, *), avg(x), buildschema(todynamic(tostring(x))), max(x), min(x), percentile(x, 55), hll(x) ,stdev(x), sum(x), sumif(x, x > 0), tdigest(x), variance(x)
Output
| any_x | arg_max_x | arg_min_x | avg_x | schema_x | max_x | min_x | percentile_x_55 | hll_x | stdev_x | sum_x | sumif_x | tdigest_x | variance_x |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| NaN | 0 | 0 | 0 | 0 |
Le résultat de avg_x(x) est NaN dû à la division par 0.
datatable(x:long)[]
| summarize count(x), countif(x > 0) , dcount(x), dcountif(x, x > 0)
Output
| count_x | countif_ | dcount_x | dcountif_x |
|---|---|---|---|
| 0 | 0 | 0 | 0 |
datatable(x:long)[]
| summarize make_set(x), make_list(x)
Output
| set_x | list_x |
|---|---|
| [] | [] |
L’agrégation moyenne additionne uniquement les valeurs non null et compte uniquement ces valeurs dans son calcul, ignorant les valeurs Null.
range x from 1 to 4 step 1
| extend y = iff(x == 1, real(null), real(5))
| summarize sum(y), avg(y)
Output
| sum_y | avg_y |
|---|---|
| 15 | 5 |
La fonction de nombre standard inclut des valeurs Null dans son nombre :
range x from 1 to 2 step 1
| extend y = iff(x == 1, real(null), real(5))
| summarize count(y)
Output
| count_y |
|---|
| 2 |
range x from 1 to 2 step 1
| extend y = iff(x == 1, real(null), real(5))
| summarize make_set(y), make_set(y)
Output
| set_y | set_y1 |
|---|---|
| [5.0] | [5.0] |