width_bucket()

返回操作数所属存储桶编号的函数

width_bucket() 是一个系统函数,它根据给定的直方图或数组,返回提供操作数所属的存储桶编号。

width_bucket()PostgreSQL 8.0 中添加。

用法

width_bucket() 有两个变体,一个对直方图进行操作,另一个对数组进行操作。

直方图

width_bucket ( operand numeric, low numeric, high numeric, count integer )
        → integer
width_bucket ( operand double precision, low double precision, high double precision, count integer )
        → integer

如果提供的操作数超出直方图的下限或上限,则将返回0count + 1

数组

width_bucket ( operand anycompatible, thresholds anycompatiblearray )
         → integer

提供的数组必须按从小到大的顺序排序,否则可能会返回不正确的结果。

如果提供的操作数超出数组的下限或上限,则将返回0array_length() + 1

更改历史记录

示例

使用直方图的width_bucket() 的基本用法示例

postgres=# SELECT width_bucket(13, 11, 15, 5);
 width_bucket
--------------
            3
(1 row)

在此示例中,直方图范围在1115 之间,有5 个存储桶。相应地,提供的操作数3 位于第三个存储桶中。

使用非整数值的示例

postgres=# SELECT width_bucket(0.3, 0.1, 1.1, 5);
 width_bucket
--------------
            2
(1 row)

如果提供的操作数小于直方图的下限,则返回0

postgres=# SELECT width_bucket(2, 11, 15, 5);
 width_bucket
--------------
            0
(1 row)

如果提供的操作数大于直方图的上限,则返回count + 1

postgres=# SELECT width_bucket(22, 11, 15, 5);
 width_bucket
--------------
            6
(1 row)

使用数组的width_bucket() 的基本用法示例

postgres=# SELECT width_bucket(2, ARRAY[1, 2, 3]);
 width_bucket
--------------
            2
(1 row)

分类

系统函数

反馈

提交任何关于 "width_bucket()" 的评论、建议或更正 此处