goodsid    fenlei             序号
23819 中药-中药饮片-精制饮片 1
23824 中药-中药饮片-精制饮片 2
22170 中药-中药饮片-精制饮片 3
23816 中药-中药饮片-精制饮片 4
23817 中药-中药饮片-精制饮片 5
20964 中药-中药饮片-粉剂 1
20960 中药-中药饮片-粉剂 2
20953 中药-中药饮片-粉剂 3
23773 中药-贵细药材-天麻类 1
23767 中药-贵细药材-天麻类 2
23768 中药-贵细药材-天麻类 3
23782 中药-贵细药材-天麻类 4
说明:goodsid和fenlei是表里面的字段,序号如何自动这样生成?
谢谢!

解决方案 »

  1.   

    select goodsid,fenlei,row_number() over (partition by fenlei order by goodsid) from 表名
      

  2.   

    刚才据楼上的测试,提示一个错误:
    ORA-00439,未启用特征:OLAP WINDOWS FUNCTIONS.
    请问如何解决?
      

  3.   

    with t as(
    select '23891' goodsid,'中药-中药饮片-精制饮片' fenlei from dual
    union all
    select '23824','中药-中药饮片-精制饮片' from dual
    union all
    select '22170','中药-中药饮片-精制饮片' from dual
    union all
    select '23816','中药-中药饮片-精制饮片' from dual
    union all
    select '23817','中药-中药饮片-精制饮片' from dual
    union all
    select '20964','中药-中药饮片-粉剂' from dual
    union all
    select '20960','中药-中药饮片-粉剂' from dual
    union all
    select '20953','中药-中药饮片-粉剂' from dual
    union all
    select '23773','中药-贵细药材-天麻类' from dual
    union all
    select '23767','中药-贵细药材-天麻类' from dual
    union all
    select '23768','中药-贵细药材-天麻类' from dual
    union all
    select '23782','中药-贵细药材-天麻类' from dual
    )
    select goodsid,
           fenlei,
           row_number() over(partition by fenlei order by goodsid) 序号
      from t;
     
    GOODSID FENLEI                         序号
    ------- ---------------------- ----------
    23767   中药-贵细药材-天麻类            1
    23768   中药-贵细药材-天麻类            2
    23773   中药-贵细药材-天麻类            3
    23782   中药-贵细药材-天麻类            4
    20953   中药-中药饮片-粉剂              1
    20960   中药-中药饮片-粉剂              2
    20964   中药-中药饮片-粉剂              3
    22170   中药-中药饮片-精制饮片          1
    23816   中药-中药饮片-精制饮片          2
    23817   中药-中药饮片-精制饮片          3
    23824   中药-中药饮片-精制饮片          4
    23891   中药-中药饮片-精制饮片          5
      

  4.   

    我现在在网络上搜索,如何安装OLAP Window Functions,我的oracle版本是817,就没有如何在oracle817上安装OLAP Window Functions的相关文章,请问在oracle817上如何安装OLAP Window Functions?
      

  5.   

    分组排名with t as(
    select '23891' a,'中药-中药饮片-精制饮片' b from dual
    union all
    select '23824','中药-中药饮片-精制饮片' from dual
    union all
    select '22170','中药-中药饮片-精制饮片' from dual
    union all
    select '23816','中药-中药饮片-精制饮片' from dual
    union all
    select '23817','中药-中药饮片-精制饮片' from dual
    union all
    select '20964','中药-中药饮片-粉剂' from dual
    union all
    select '20960','中药-中药饮片-粉剂' from dual
    union all
    select '20953','中药-中药饮片-粉剂' from dual
    union all
    select '23773','中药-贵细药材-天麻类' from dual
    union all
    select '23767','中药-贵细药材-天麻类' from dual
    union all
    select '23768','中药-贵细药材-天麻类' from dual
    union all
    select '23782','中药-贵细药材-天麻类' from dual
    )select a,b,rank() over(partition by b order by a) rn
    from t
          a       b                rn
    -------------------------------------------------------------
    1 23767 中药-贵细药材-天麻类 1
    2 23768 中药-贵细药材-天麻类 2
    3 23773 中药-贵细药材-天麻类 3
    4 23782 中药-贵细药材-天麻类 4
    5 20953 中药-中药饮片-粉剂 1
    6 20960 中药-中药饮片-粉剂 2
    7 20964 中药-中药饮片-粉剂 3
    8 22170 中药-中药饮片-精制饮片 1
    9 23816 中药-中药饮片-精制饮片 2
    10 23817 中药-中药饮片-精制饮片 3
    11 23824 中药-中药饮片-精制饮片 4
    12 23891 中药-中药饮片-精制饮片 5
      

  6.   


    select goodsid,fenlei,rownum from (select goodsid,fenlei from table_name group by goodsid,fenlei)