mysql - 使用 MYSQL 反向排名

标签 mysql rank

我有下表

Member      Date Joined
------      -----------
Alan        01/02/2014
Bob         01/02/2013
Phil        01/02/2012
Bert        01/02/2011

但我想以相反的顺序对它们进行排名,同时将结果保持在加入日期顺序中。即我想输出

No   Member      Date Joined
--   ------      ----------
4    Alan        01/02/2014
3    Bob         01/02/2013 
2    Phil        01/02/2012
1    Bert        01/02/2011

不知道从哪里开始?有人有什么想法吗?

最佳答案

您可以在内部查询中为 MySQL 使用标准的“创建行号”例程,然后以相反的顺序从中选择:

select
    member,
    date_joined
    rank
from (
    select 
        member,
        date_joined,
        @rank := @rank + 1 as rank
    from 
        members
        join (select @rank := 0) r
    order by 
        date_joined asc
) foo
order by rank desc

关于mysql - 使用 MYSQL 反向排名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21021064/

相关文章:

来自 Powershell 和 Windows 编码的 MysqlDump

php - Blob 还是上传?

php - Mysql查询基于列匹配

mysql 如何避免 select 请求中的数据重复

mysql - 无法在 MySQL 中为相关架构建表

excel - 在 Excel 中对排名数据进行排序,同时将重复项列为不同的整数

用于对重复值进行排序的 Excel 函数

python - Numpy 等级 1 数组

Pyspark - 排名列保持联系

php - MySQL 查询 Laravel Eloquent