有一表
-----------------
COL1   COL2  COL3
-----------------
aabaa   111  20.3
bbasdb  111  30.5
cccasd  121  40.6
asdf    121  10.3
ads     123  10.5
ade     123  10.5
ads     505  11.55
ads     505  125
adx     606  15想得到的结果
---------------
COL1   COL2  COL3  序号
----------------------
aabaa   111  20.3  1
bbasdb  111  30.5  2
cccasd  121  40.6  1
asdf    121  10.3  2
ads     121  10.5  3
ade     123  10.5  2
ads     505  11.55 1
ads     505  125   2
adx     606  15    1

解决方案 »

  1.   

    select *,rank() over(partition by COL2 order by COL3) as 序号 from tb
      

  2.   

    ade 123 10.5 2 这条最后为什么是2?
      

  3.   

    SELECT *, [序号]= ROW_NUMBER() OVER (PARTITION BY [COL2] ORDER BY COL3) FROM 
    TB
      

  4.   

    select *,序号 =
    row_number() over (partition by COL2 order by COL1)
    from tablename
      

  5.   

    --SQL:用排名函数
    SELECT
    *,
    rowno = ROW_NUMBER() OVER(PARTITION BY col2 order BY GETDATE())
    FROM #temp
      

  6.   

    select
     *,row_number() over (partition by COL2 order by col1) as 序号
    from
     tb
      

  7.   

    select *,序号 =
    row_number() over (partition by COL2 order by COL3)
    from tablename