首页 > 数据库 >mysql中的并列/非并列排名:rank() over() 、dense_rank() over()以及 row_number() over()

mysql中的并列/非并列排名:rank() over() 、dense_rank() over()以及 row_number() over()

时间:2023-11-07 17:35:21浏览次数:32  
标签:count over visit rank 访问量 并列 order

前言:使用sql查询数据的时候,我们有时候需要根据具体的字段值进行排名,下面使用几个栗子来说明rank在sql中的作用

下面用到的表名:user_visit_stats 主要字段包括:用户id(uid),部门名称(dept_name),访问次数(visit_count)

1、格式:rank()  over(order by [列名])

根据访问量降序排名,访问量相同时 排名并列 ,下一位需要空出并列的名次

select 
uid,visit_count ,
rank() over(order by visit_count desc ) as rank_num
from user_visit_stats 

执行结果:

 2、格式 rank() over(partition by [列名] order by [列名])

按照部门分组,再在分组中按照访问量降序排名,访问量相同时并列排名,下一位需要空出并列的名次

select 
uid,dept_name ,visit_count ,
rank() over(partition by dept_name order by visit_count desc) as rank_num
from user_visit_stats 
where dept_name is not null and dept_name <> ""

执行结果:

3、格式:dense_rank() over(order by [列名])

根据访问量降序排名,访问量相同时排名并列,下一位不需要空出并列的名词

select uid,visit_count,
dense_rank() over(order by visit_count desc) as rank_num
from user_visit_stats 

执行结果:

 4、格式:row_number() over(order by [列名])

 根据访问量排名降序排名,访问量相同时 不需要并列,一直排下去

select uid,visit_count ,
row_number() over(order by visit_count desc) as rank_num
from user_visit_stats 

执行结果:

 

标签:count,over,visit,rank,访问量,并列,order
From: https://www.cnblogs.com/yanghr/p/17815477.html

相关文章

  • sql server 排序 row_number() over(order by ) as row /
    第一种排序方法:利用row_number()over(orderbycreatetimedesc)asrow参考来源:版权声明:本文为CSDN博主「云游的二狗」的原创文章,遵循CC4.0BY-SA版权协议,转载请附上原文出处链接及本声明。原文链接:https://blog.csdn.net/missingshirely/article/details/44037037语法如......
  • /var/lib/docker/overlay2/41a765b3cfaa278a67414c5b89234adfdebac7182d4bcd1e7c8a2c6
    现象:Error:Errorresponsefromdaemon:errorcreatingoverlaymountto/var/lib/docker/overlay2/41a765b3cfaa278a67414c5b89234adfdebac7182d4bcd1e7c8a2c6ac250dfb7-init/merged:nosuchfileordirectory原因:由于Docker存储空间中的一些残留文件或损坏的文件系统引......
  • Pset_SpaceCoveringRequirements
    Pset_SpaceCoveringRequirements房间装饰的属性。这些属性在房间计划的早期阶段被列为要求,如果服装不是作为独立元素设计的,则可以作为后期房间手册的信息。  NameTypeDescriptionFloorCoveringP_SINGLEVALUE / IfcLabelBodenbelagAngabedesMaterialsfürd......
  • 新品发布:信驰达TI CC1352P7双频段多协议模块RF-TI1352P2,支持Matter over Thread
    近日,领先的无线物联网通信模块厂商深圳市信驰达科技推出了基于TICC1352P7为核心的双频段(Sub-1GHz和2.4GHz)多协议无线模块RF-TI1352P2。RF-TI1352P2模块除了集成负责应用逻辑的高性能48MHz ARMCortex-M4F主处理器与一个专用于负责射频核心的ARMCortex-M0处理器之外,还......
  • overflow溢出属性 前端基础之JavaScript
    今日内容详细overflow溢出属性visible 默认值。内容不会被修剪,会呈现在元素框之外。hidden 内容会被修剪,并且其余内容是不可见的。scroll 内容会被修剪,但是浏览器会显示滚动条以便查看其余的内容。auto 如果内容被修剪,则浏览器会显示滚动条以便查看其余的内容。●over......
  • python,pandas ,openpyxl提取excel特定数据,合并单元格合并列,设置表格格式,设置字体颜色,
    python,pandas,openpyxl提取excel特定数据,合并单元格合并列,设置表格格式,设置字体颜色,代码importosimportnumpyimportpandasaspdimportopenpyxlfromopenpyxl.stylesimportFontfromopenpyxl.stylesimportBorder,Sidedefread(file):#读取表格A和表格B......
  • SpringCloud复习:(1)netflix包里的DiscoveryClient类
    DiscoveryClient类实现了EurekaClient接口它的主要作用:服务注册,服务续约,服务下线,获取服务列表。initScheduledTasks方法用来开启定时任务来完成上述功能。上图中的代码用来从服务器定期(默认30秒)拉取服务列表(ScheduledExecutorService的应用场景)其中TimedSupervisorTask这个Run......
  • PAT 甲级【1013 Battle Over Cities】
    本题就是dfs.连通图个数-2;但是java慢,最后一个case超时importjava.io.*;importjava.util.HashSet;importjava.util.Set;publicclassMain{@SuppressWarnings("uncheck")publicstaticvoidmain(String[]args)throwsIOException{StreamToken......
  • Illegal overloaded getter method with ambiguous type for property......
    问题原因建议1、boolean类型的属性值不建议设置为is开头,否则会引起rpc框架的序列化异常。2、如果强行将IDE自动生成的isSuccess()方法修改成getSuccess(),也能获取到Success属性值,若两者并存,则之后通过getSuccess()方法获取Success属性值。......
  • PAT 甲级【1012 The Best Rank】
    本题用java极容易超时,提交了好几次才成功另外9088777750,名次应该是12335,不是12334 importjava.io.*;publicclassMain{@SuppressWarnings("unchecked")publicstaticvoidmain(String[]args)throwsIOException{StreamTokenizer......