Partager via


bin()

S’applique à : ✅Microsoft Fabric✅Azure Data ExplorerAzure MonitorMicrosoft 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() les bin() 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 :

  1. Utilisez l’opérateur union pour ajouter d’autres lignes à la table.
  2. L’opérateur range génère une table comportant une seule ligne et une seule colonne.
  3. L’opérateur mv-expand sur la range fonction crée autant de lignes qu’il y a de bacs entre StartTime et EndTime.
  4. Utilisez une PropertyDamage sur 0.
  5. L’opérateur summarize regroupe les compartiments de la table d’origine vers la table produite par l’expression union . 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