题解 | #每类试卷得分前3名#

每类试卷得分前3名

https://www.nowcoder.com/practice/255aa1863fe14aa88694c09ebbc1dbca

  • 在子查询中不能用"having ranking <= 3", 也不能用"where ranking <= 3"
     由于SQL语句执行顺序:
          1. 确认表: FROM, JOIN; 
          2. 筛选条件: WHERE;
          3. 分类&显示: GROUP BY, HAVING;
          4. SELECT;
          5. 排序:-ORDER BY;
          6. 显示控制-LIMIT
      执行WHERE、HAVING时尚未执行SELECT rank_over(), "where ranking <= 3" ;
  • 排序 
    row_number(): 不管值是否相同,都是连续排列,不跳跃
    rank(): 如果值相同,排序一样,后面的排序跳跃 
   
#sql#
全部评论

相关推荐

评论
3
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务