给一张表按流量排序后,怎么让他出一个对应的排名,
比如流量第一 排名就是1
流量第2 排名就是2oracle应该可以用rownum的 pgsql不行啊。给个例子 谢谢。

解决方案 »

  1.   

    这个简单啊..set @n=0;
    select * ,@n:=@n+1 as 排名
    from tb 
    order by 流量 desc;
      

  2.   

    coolwind=> select name from names;
     name
    -------
     test1
     test2
     test1
    (3 rows)coolwind=> select name,row_number() over(order by name) from names;
     name  | row_number
    -------+------------
     test1 |          1
     test1 |          2
     test2 |          3
    (3 rows)
      

  3.   

    coolwind=> select name,rank() over(order by name) from names;
     name  | rank
    -------+------
     test1 |    1
     test1 |    1
     test2 |    3
    (3 rows)