哪个分析函数可以解决我这问题khbh
中国
中国
美国
美国
我想得到的查询结果是这样的形式
khbh ..
中国   1
中国   1 
美国   2
美国   2 

解决方案 »

  1.   

    decode 
    case when then  else end 
    都可以实现的 
      

  2.   

    lz是不是想按不同khbh排顺序号?
    如果是的话,可以用lag()over()这个可以取当前列上面的列值,比较不同时序号+1,相同不变
    不知道我理解的对不对
      

  3.   

    dense_rank() over(order by khbh) 排名
      

  4.   

    我就要求khbh相同的后面的序号相同,不同的不一样就可以
      

  5.   


     create  table table_a (a varchar2(10));
     insert into table_a
     values('中国');
      insert into table_a
     values('中国');
      insert into table_a
     values('美国');
      insert into table_a
     values('美国');
     
     select a,case a when '中国' then 1 
                     when  '美国' then 2 else 0 end  as id from table_a
      

  6.   


    你只适用于两种数据用row_number() over
    这个分析函数可以实现select khbh,row_number() over(order by khbh desc)
    from a
      

  7.   

    用rank() over(order by khbh)
    dense_rank()结果是1133
      

  8.   

    这是oracle啊,你说的那个事sql 9.0版本以上的函数啊
      

  9.   

    create  table table_a (a varchar2(10));
     insert into table_a
     values('中国');
      insert into table_a
     values('中国');
      insert into table_a
     values('美国');
      insert into table_a
     values('美国');
     
      select a,    dense_rank() over(order by a)  px from table_a