SQL——高级聚集

1.排名rank/dense_rank
示例:

排名

对于上述问题,可以使用dense_rank聚集函数解决:

select Score dense_rank() over( order by (Score) desc) as Rank
from Scores
order by s_rank

而如果是要平局之后的下一个名次是非连续的,则应该用rank(),用法与dense_rank一样。

如果不用rank函数,也可以实现上述问题:

select Score ,(1+(select count(distinct score)
              from Scores as B
             where B.score>A.score)) as Rank
from Scores as A
order by Rank

而如果要非连续的,则把上边的关键字distinct去掉即可。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 分析函数,也称为窗口函数,通常被认为仅对数据仓库SQL有用。使用分析函数的查询,基于对数据行的分组来计算总量值。与...
    猫猫_tomluo阅读 8,649评论 3 18
  • 2017/3/14 RDBMS:关系型数据库管理系统 关系模型独立于语言 SQL有几种不同类型的语言:数据定义语言...
    ancherl阅读 5,577评论 0 6
  • 说明:以下五十个语句都按照测试数据进行过测试,最好每次只单独运行一个语句。 问题及描述: --1.学生表 Stud...
    lijun_m阅读 5,099评论 0 1
  • 子若漂亮,勤奋,声乐方面天赋异禀。高中课堂,能多唱好几个音高,被团长男选入合唱团。因为出色,招人嫉妒。在班...
    小Puppy给yyy写原创阅读 3,114评论 0 0
  • 99颗糖 | 第二颗 虽然我现在开始尝试着写故事 表达自己的观点 但是其实我有时候不那么擅长表达 特别是经历过了太...
    MOOYO阅读 4,562评论 0 1