适用于:
Databricks SQL
Databricks Runtime
返回等宽直方图中某个值的 Bucket 编号。
语法
width_bucket(expr, minExpr, maxExpr, numBuckets)
参数
expr:要设置 Bucket 的数值或间隔表达式。minExpr:数值或间隔表达式,提供 Bucket 的下边界。maxExpr:数值或间隔表达式,提供 Bucket 的上边界。numBuckets:大于 0 的 INTEGER 表达式,指定 Bucket 数。
如果 expr 是数值,则 minExpr 和 maxExpr 也必须是数值。
如果 expr 是一个间隔,则 minExpr 和 maxExpr 必须是相同的间隔类型。
从 Databricks Runtime 10.1 开始支持间隔
返回
一个 INTEGER。
该函数将 minExpr 和 maxExpr 之间的范围分割为大小相等的 numBuckets 切片。
结果为 expr 落在其中的切片。
如果 expr 在 minExpr 之外,则结果为 0。
如果 expr 在 maxExpr 之外,则结果为 numbuckets + 1
minExpr 可以大于 maxExpr。
示例
> SELECT width_bucket(5.3, 0.2, 10.6, 5);
3
> SELECT width_bucket(-2.1, 1.3, 3.4, 3);
0
> SELECT width_bucket(8.1, 0.0, 5.7, 4);
5
> SELECT width_bucket(-0.9, 5.2, 0.5, 2);
3
> SELECT width_bucket(INTERVAL '1' DAY, INTERVAL '0' DAY, INTERVAL '10' DAY, 11);
2