如何在MySql中对分区进行排名

时间:2018-04-26 10:12:32

标签: mysql

我新使用MySql数据库,我遇到的问题是我可以在SQL服务器数据库中解决它,但是我不能在mysql中这样做我的情况如下

MyTable的:

Name    Price
abs     100
abs     200
abs     60
trx     19
trx     20
abs     10
qwe     25
qwe     50
qwe     10
qwe     10

结果预期:

Name    Price   Rank
abs      200    4
abs      100    3
abs      60     2
abs      10     1
qwe      50     4
qwe      25     3
qwe      10     2
qwe      10     1
trx      20     2
trx      19     1

任何人都可以帮我如何进行查询,如索引结果pict 使用Mysql

1 个答案:

答案 0 :(得分:2)

使用变量,您可以找到enter code here object y = dt1.Rows[i]["pole_id"].ToString(); dtTemp.NewRow(); dtTemp.Rows.Add(y ,x); 。 像这样:

Rank

输出:

SELECT Name, Price, Rank
FROM (
      SELECT Name,
             Price,
             CASE WHEN @name = Name
                     THEN @id:=@id+1
                  ELSE @id:=1
             END AS Rank,
             @name:= Name AS dummy
      FROM myTable, (SELECT @name:=NULL, @id:=0) AS t
      ORDER BY Name,Price
     ) AS x
ORDER BY Name, Price DESC, Rank DESC 

演示链接:

  

http://sqlfiddle.com/#!9/a98575/4