2017-02-11 52 views
0

我在MySQL中的初学者,现在一直在寻找这个问题的解决方案了几个小时。我找到了一些答案,但似乎无法实现它们。仿效搜索和获取返回的行的行数(从总)

基本上,继承人是我想做的事:

我想找到如何从一个特定国家用户会排相比,来自同一国家的其他用户,当他们通过ID

排名为例如:
乔ID 10和来自美国
有100个用户来自美国
结果:乔排名第10

如何将它转换为一个MySQL查询?

预先感谢您。

+0

显示一些数据表 – denny

+0

是ID和排名相同吗? – affaz

+0

在我的表格中,我只有2列 - ** id **和** country ** –

回答

1

创建2个用户变量,例如,running & previous它得到以前的排名,并通过增加电流值由1

select u.id,u.country,u.rank 
from (
    select u1.id,u1.country, 
     @running:=if(@previous=concat(u1.id,u1.country),@running,0) + 1 as rank, 
     @previous:=concat(u1.id,u1.country) 
    from tablename u1 
    order by concat(t.id,t.country) 
) u; 

据此计算country的排名与表

更换 tablename