在工作中经常遇到对某个数字范围,如:1~10000,需要按照100一段进行划分。手写一段一段的区间繁琐且容易出错,因此写了下述hive sql实现 指定一个数字,这个数字代表划分区间的最大范围。
然后根据这个最大范围,按照划分标准,来自动划分一段一段的数值区间
select
pos+1
,concat('[',cast(floor((pos+1)/100)*100 as string),',',cast((floor((pos+1)/100)+1)*100 as string),')')
from (SELECT posexplode(split(space(10000), '')) AS (pos, dummy))tt
其中10000代表最大范围,按照100一段的标准来分段