a   b
aa  as
bb  ab
bb  gg
bb  kk
cc  dd
cc  ff
...-->a   b
aa  as   1
bb  ab   1
bb  gg   2
bb  kk   3
cc  dd   1
cc  ff   2
...哪位大侠帮下忙
谢谢

解决方案 »

  1.   

    select a,b,(select count(1) from tb where a=g.a and b<g.b)+1 num from tb g
      

  2.   

    DECLARE @TB TABLE(A VARCHAR(2),B VARCHAR(2))
    INSERT @TB
    SELECT 'aa',  'as' UNION ALL 
    SELECT 'bb',  'ab' UNION ALL 
    SELECT 'bb',  'gg' UNION ALL 
    SELECT 'bb',  'kk' UNION ALL 
    SELECT 'cc',  'dd' UNION ALL 
    SELECT 'cc',  'ff'SELECT A,B,ROW_NUMBER() OVER (PARTITION BY A ORDER BY A) AS ID FROM @TB
    /*
    A    B    ID
    ---- ---- --------------------
    aa   as   1
    bb   ab   1
    bb   gg   2
    bb   kk   3
    cc   dd   1
    cc   ff   2
    */
      

  3.   

    select *,row_number() over(partition by a order by a) rank from tb 
      

  4.   


    怎么把partition 给忘记了呢