bin()
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 éparses, elles sont regroupées dans un ensemble plus petit de valeurs spécifiques.
Les
bin()
fonctions etfloor()
sont équivalentes
Syntaxe
bin(
value,
roundTo)
En savoir plus sur les conventions de syntaxe.
Paramètres
Nom | Type | Obligatoire | Description |
---|---|---|---|
value | int, long, real, timespan ou datetime | ✔️ | Valeur à arrondir. |
roundTo | int, long, real ou timespan | ✔️ | « Taille du 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 |
Compartiment d’intervalle de temps
print bin(time(16d), 7d)
Sortie
print_0 |
---|
14:00:00:00 |
Bac Datetime
print bin(datetime(1970-05-11 13:45:07), 1d)
Sortie
print_0 |
---|
1970-05-11T00 :00 :00Z |
Pagayer une table avec des compartiments Null
Lorsqu’il existe des lignes pour les bacs sans ligne correspondante dans la table, nous vous recommandons de les compléter. La requête suivante examine les événements de 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 entière, la requête suivante permet de remplir 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 compartiments 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 |
Commentaires
https://aka.ms/ContentUserFeedback.
Bientôt disponible : Tout au long de 2024, nous allons supprimer progressivement GitHub Issues comme mécanisme de commentaires pour le contenu et le remplacer par un nouveau système de commentaires. Pour plus d’informations, consultezEnvoyer et afficher des commentaires pour