Partilhar via


Lixeira()

Aplica-se a: ✅Microsoft FabricAzure Data ExplorerAzure MonitorMicrosoft Sentinel

Arredonda valores para baixo para um múltiplo inteiro de um determinado tamanho de compartimento.

Usado frequentemente em combinação com summarize by .... Se você tiver um conjunto disperso de valores, eles serão agrupados em um conjunto menor de valores específicos.

As funções bin() e floor() são equivalentes

Sintaxe

bin( valor,roundTo)

Saiba mais sobre convenções de sintaxe.

Parâmetros

Nome Tipo Obrigatório Descrição
valor int, long, real, timespan ou datetime ✔️ O valor a arredondar para baixo.
roundTo int, longo, real ou período de tempo ✔️ O "tamanho do caixote" que divide o valor.

Devoluções

O múltiplo mais próximo de roundTo abaixo do valor. Valores nulos, um tamanho de compartimento nulo ou um tamanho de compartimento negativo resultarão em nulo.

Exemplos

O exemplo a seguir demonstra a bin() função com dados numéricos.

print bin(4.5, 1)

Realização

print_0
4

O exemplo a seguir demonstra a bin() função com dados de período de tempo.

print bin(time(16d), 7d)

Realização

print_0
14:00:00:00

O exemplo a seguir demonstra a bin() função com dados datetime.

print bin(datetime(1970-05-11 13:45:07), 1d)

Realização

print_0
1970-05-11T00:00:00Z

Quando houver linhas para compartimentos sem linha correspondente na tabela, recomendamos preencher a tabela com esses compartimentos. A consulta a seguir analisa eventos de tempestade de vento forte na Califórnia por uma semana em abril. No entanto, não há eventos em alguns dos dias.

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)

Realização

HoraDeInício Danos à propriedade
2007-04-08T00:00:00Z 3000
2007-04-11T00:00:00Z 1000
2007-04-12T00:00:00Z 105000

Para representar a semana completa, a consulta a seguir preenche a tabela de resultados com valores nulos para os dias ausentes. Aqui está uma explicação passo a passo do processo:

  1. Use o union operador para adicionar mais linhas à tabela.
  2. O range operador produz uma tabela que tem uma única linha e coluna.
  3. O mv-expand operador sobre a range função cria tantas linhas quanto há compartimentos entre StartTime e EndTime.
  4. Use um PropertyDamage de 0.
  5. O summarize operador agrupa compartimentos da tabela original para a tabela produzida pela union expressão. Esse processo garante que a saída tenha uma linha por compartimento cujo valor seja zero ou a contagem original.
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)

Realização

HoraDeInício Danos à propriedade
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 1000
2007-04-12T00:00:00Z 105000
2007-04-13T00:00:00Z 0
2007-04-14T00:00:00Z 0