bin()
S’applique à : ✅Microsoft Fabric✅Azure Data Explorer✅Azure Monitor✅Microsoft Sentinel
arrondit les valeurs à l’entier inférieur multiple d’une taille bin donnée.
Fonction fréquemment utilisée en combinaison avec summarize by ...
.
Si vous avez un ensemble de valeurs dispersés, elles seront regroupées en un plus petit ensemble de valeurs spécifiques.
Les fonctions et
floor()
lesbin()
fonctions sont équivalentes
Syntaxe
bin(
value,
roundTo)
En savoir plus sur les conventions de syntaxe.
Paramètres
Nom | Type | Requise | Description |
---|---|---|---|
valeur | int, long, real, timespan ou datetime | ✔️ | Valeur à arrondir. |
roundTo | int, long, real ou timespan | ✔️ | Taille de bac qui divise la valeur. |
Retours
Multiple le plus proche de roundTo, inférieur à value. Des valeurs null, une taille de compartiment null ou une taille de compartiment négative génèrent le résultat null.
Exemples
Bac numérique
print bin(4.5, 1)
Sortie
print_0 |
---|
4 |
Timespan bin
print bin(time(16d), 7d)
Sortie
print_0 |
---|
14:00:00:00 |
Bin Datetime
print bin(datetime(1970-05-11 13:45:07), 1d)
Sortie
print_0 |
---|
1970-05-11T00:00:00Z |
Remplissage d’une table avec des compartiments Null
Lorsqu’il existe des lignes pour les compartiments sans ligne correspondante dans la table, nous vous recommandons de remplir la table avec ces bacs. La requête suivante examine les fortes tempêtes de vent en Californie pendant une semaine en avril. Toutefois, il n’y a aucun événement sur certains jours.
let Start = datetime('2007-04-07');
let End = Start + 7d;
StormEvents
| where StartTime between (Start .. End)
| where State == "CALIFORNIA" and EventType == "Strong Wind"
| summarize PropertyDamage=sum(DamageProperty) by bin(StartTime, 1d)
Sortie
StartTime | Dommagesmatériels |
---|---|
2007-04-08T00:00:00Z | 3000 |
2007-04-11T00:00:00Z | 1 000 |
2007-04-12T00:00:00Z | 105000 |
Pour représenter la semaine complète, la requête suivante posent la table de résultats avec des valeurs Null pour les jours manquants. Voici une explication pas à pas du processus :
- Utilisez l’opérateur
union
pour ajouter d’autres lignes à la table. - L’opérateur
range
génère une table comportant une seule ligne et une seule colonne. - L’opérateur
mv-expand
sur larange
fonction crée autant de lignes qu’il y a de bacs entreStartTime
etEndTime
. - Utilisez une
PropertyDamage
sur0
. - L’opérateur
summarize
regroupe les compartiments de la table d’origine vers la table produite par l’expressionunion
. Ce processus permet de veiller à ce que la sortie comporte une ligne par classe dont la valeur est égale à zéro ou au nombre d’origine.
let Start = datetime('2007-04-07');
let End = Start + 7d;
StormEvents
| where StartTime between (Start .. End)
| where State == "CALIFORNIA" and EventType == "Strong Wind"
| union (
range x from 1 to 1 step 1
| mv-expand StartTime=range(Start, End, 1d) to typeof(datetime)
| extend PropertyDamage=0
)
| summarize PropertyDamage=sum(DamageProperty) by bin(StartTime, 1d)
Sortie
StartTime | Dommagesmatériels |
---|---|
2007-04-07T00:00:00Z | 0 |
2007-04-08T00:00:00Z | 3000 |
2007-04-09T00:00:00Z | 0 |
2007-04-10T00:00:00Z | 0 |
2007-04-11T00:00:00Z | 1 000 |
2007-04-12T00:00:00Z | 105000 |
2007-04-13T00:00:00Z | 0 |
2007-04-14T00:00:00Z | 0 |