繁体   English   中英

在sql中,如何根据另一列的值制作排名列?

[英]in sql, how to make a rank column based on the value of another column?

说我想创建一个如下表:

user   score   rank
a      100     2   
b      200     1
c      50      3
d      50      3

我究竟如何创建一个rank列,并在其中使用带有score的新记录条目进行更新?

对于小表,最简单的方法是关联子查询:

select t.*,
       (select 1 + count(*)
        from t t2
        where t2.score > t.score
       ) as rank
from t 
order by score desc;

注意:这根据大多数数据库中可用的rank()窗口函数实现了“排名”。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM