bin()
Arredonda os valores para um número inteiro múltiplo de um determinado tamanho de contentor.
Utilizado frequentemente em combinação com summarize by ...
.
Se tiver um conjunto disperso de valores, estes serão agrupados num conjunto menor de valores específicos.
As
bin()
funções efloor()
são equivalentes
Syntax
bin(
valor,
roundTo)
Saiba mais sobre as convenções de sintaxe.
Parâmetros
Nome | Tipo | Necessário | Descrição |
---|---|---|---|
value | int, long, real, timespan ou datetime | ✔️ | O valor a arredondar para baixo. |
roundTo | int, long, real ou timespan | ✔️ | O "tamanho da classe" que divide o valor. |
Devoluções
O múltiplo mais próximo de roundTovalor abaixo. Os valores nulos, um tamanho de caixote nulo ou um tamanho de contentor negativo resultarão em nulos.
Exemplos
Classe numérica
print bin(4.5, 1)
Saída
print_0 |
---|
4 |
Intervalo de tempo
print bin(time(16d), 7d)
Saída
print_0 |
---|
14:00:00:00 |
Datetime bin
print bin(datetime(1970-05-11 13:45:07), 1d)
Saída
print_0 |
---|
1970-05-11T00:00:00Z |
Pad a table with null bins (Teclado uma tabela com classes nulas)
Quando existirem linhas para contentores sem linhas correspondentes na tabela, recomendamos que acolchoe a tabela com essas classes. A seguinte consulta analisa os fortes eventos de tempestade de vento na Califórnia durante uma semana em abril. No entanto, não existem 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)
Saída
StartTime | PropertyDamage |
---|---|
2007-04-08T00:00:00Z | 3.000 |
04-2007-11T00:00:00Z | 1000 |
2007-04-12T00:00:00Z | 105000 |
Para representar a semana completa, a seguinte consulta apadrinha a tabela de resultados com valores nulos para os dias em falta. Eis uma explicação passo a passo do processo:
- Utilize o
union
operador para adicionar mais linhas à tabela. - O
range
operador produz uma tabela que tem uma única linha e coluna. - O
mv-expand
operador através darange
função cria o número de linhas que existem entreStartTime
eEndTime
. - Utilize um
PropertyDamage
de0
. - O
summarize
operador agrupa as classes da tabela original para a tabela produzida pelaunion
expressão. Este processo garante que o resultado tem uma linha por contentor cujo valor é 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)
Saída
StartTime | PropertyDamage |
---|---|
2007-04-07T00:00:00Z | 0 |
2007-04-08T00:00:00Z | 3.000 |
2007-04-09T00:00:00Z | 0 |
2007-04-10T00:00:00Z | 0 |
04-2007-11T00:00:00Z | 1000 |
2007-04-12T00:00:00Z | 105000 |
2007-04-13T00:00:00Z | 0 |
04-2007-14T00:00:00Z | 0 |
Comentários
https://aka.ms/ContentUserFeedback.
Brevemente: Ao longo de 2024, vamos descontinuar progressivamente o GitHub Issues como mecanismo de feedback para conteúdos e substituí-lo por um novo sistema de feedback. Para obter mais informações, veja:Submeter e ver comentários