SELECT x, width_bucket(x, min_, max_+1, 100) rank_
FROM
(
SELECT x, MIN(x) over() min_, MAX(x) over() max_
FROM
(
SELECT round(dbms_random.value(1, 122)) x FROM dual CONNECT BY rownum <= 200
)
)
WIDTH_BUCKET(x,min,max,num_buckets) 只能在SQL语句中使用。
使用WIDTH_BUCKET可以根据输入参数创建等长的段。范围MIN到MAX被分为num_buckets节,每节有相同的大小。返回X所在的那一节。如果X小于MIN,将返回0,如果X大于或等于MAX,将返回num_buckets+1.MIN和MAX都不能为NULL,num_buckets必须是一个正整数。如果X是NULL,则返回NULL。