bin_at()

将值向下舍入为固定大小的箱,并控制箱的起点。

语法

bin_at(value,bin_size,fixed_point)

详细了解语法约定

参数

客户 类型​​ 必需 Description
value int、long、real、timespan 或 datetime 要舍入的值。
bin_size int、long、real 或 timespan 每个箱的大小。
fixed_point int、long、real、timespan 或 datetime 与 value 的类型相同的常量,指示 value 的一个值,该值是 bin_at(fixed_point, bin_size, fixed_point) == fixed_point 的固定点。

注意

如果 value 是 timespan 或 datetime,则 bin_size 必须是 timespan。

返回

低于 value 的最接近的 bin_size 倍数,移动后 fixed_point 将被转换为自身。

示例

表达式 结果 注释
bin_at(6.5, 2.5, 7) 4.5
bin_at(time(1h), 1d, 12h) -12h
bin_at(datetime(2017-05-15 10:20:00.0), 1d, datetime(1970-01-01 12:00:00.0)) datetime(2017-05-14 12:00:00.0) 所有 bin 都将处于中午
bin_at(datetime(2017-05-17 10:20:00.0), 7d, datetime(2017-06-04 00:00:00.0)) datetime(2017-05-14 00:00:00.0) 所有 bin 都将在星期日

在下面的示例中,注意 "fixed point" 参数将作为一个 bin 返回,其他 bin 根据 bin_size 与其对齐。 另请注意,每个日期/时间 bin 表示该 bin 的开始时间:

datatable(Date:datetime, Num:int)[
datetime(2018-02-24T15:14),3,
datetime(2018-02-23T16:14),4,
datetime(2018-02-26T15:14),5]
| summarize sum(Num) by bin_at(Date, 1d, datetime(2018-02-24 15:14:00.0000000)) 

输出

Date sum_Num
2018-02-23 15:14:00.0000000 4
2018-02-24 15:14:00.0000000 3
2018-02-26 15:14:00.0000000 5