如题,比如表中有很多商品数据,价格有120,58,1110,320,400002等等,我想根据这些价格自动的生成一份价格区间,比如100-300,400-1000,1000以上等等,有办法实现吗,因为价格是用户提交的,会有很多而且差异都很大,所以没法固定几个价格区间,才想到能不能根据数据来动态的生成这样的区间

解决方案 »

  1.   


    with pp as (select 120 as p from dual
        union all select 58 as p from dual
        union all select 1110 as p from dual
        union all select 320 as p from dual
        union all select 400002 as p from dual),
    pr as (select 0 as r,null as p,min(p) as p1 from pp 
        union all select row_number() over(order by p),lead(p,1,null) over(order by p) from pp order by p)
    select * from pr order by r;
      

  2.   

    分析函数sum(...)over(partition by....order by ....)