width_bucket 函数

适用于:check marked yes Databricks SQL check marked yes Databricks Runtime

返回等宽直方图中某个值的 Bucket 编号。

语法

width_bucket(expr, minExpr, maxExpr, numBuckets)

参数

  • expr:要设置 Bucket 的数值或间隔表达式。
  • minExpr:数值或间隔表达式,提供 Bucket 的下边界。
  • maxExpr:数值或间隔表达式,提供 Bucket 的上边界。
  • numBuckets:大于 0 的 INTEGER 表达式,指定 Bucket 数。

如果 expr 是数值,则 minExprmaxExpr 也必须是数值。

如果 expr 是一个间隔,则 minExprmaxExpr 必须是相同的间隔类型。

Databricks Runtime 10.1 开始支持间隔

返回

一个 INTEGER。

该函数将 minExprmaxExpr 之间的范围分割为大小相等的 numBuckets 切片。 结果为 expr 落在其中的切片。

如果 exprminExpr 之外,则结果为 0。

如果 exprmaxExpr 之外,则结果为 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