SQL中经典自连接问题


  按键伤人      62   
  2021-03-03      数据库      

在牛客刷题有一个通过题目个数的(passing_number)表,id是主键,简化如下:

SQL中经典自连接问题 - 第1张

第1行表示id为1的用户通过了4个题目;

第6行表示id为6的用户通过了4个题目;
请你根据上表,输出通过的题目的排名,通过题目个数相同的,排名相同,此时按照id升序排列,数据如下:

SQL中经典自连接问题 - 第2张

id为5的用户通过了5个排名第1,
id为1和id为6的都通过了2个,并列第2

select 
    p1.id, 
    p1.number, 
    count(distinct p2.number) as t_rank
from 
    passing_number as p1, 
    passing_number as p2
where
    p1.number <= p2.number
group by 
    p1.id
order by 
    t_rank asc,
    p1.id asc

# rank是关键字注意

id为5的用户通过了5个排名第1,
id为1和id为6的都通过了2个,并列第2

SQL中经典自连接问题 - 第3张

作者:Sky-木落

ps:以上是SQL中经典自连接问题全部内容,希望文章能够帮你解决SQL中经典自连接问题所遇到的游戏开发问题。
本文收录在 游戏编程 🕹️ - 学习数据库专题,分享走一走~

猜你喜欢 全系列


您可以在登录后,发表评论