SQL语句之DENSE_RANK函数:

DENSE_RANK()是一个窗口函数,它为分区或结果集中的每一行分配排名,而排名值没有间隙。

DENSE_RANK()。如果使用 DENSE_RANK() 进行排名会得到:1,1,2,3,4。

RANK()。如果使用 RANK() 进行排名会得到:1,1,3,4,5。

ROW_NUMBER()。如果使用 ROW_NUMBER() 进行排名会得到:1,2,3,4,5。

实战:leetCode 185题,

部门工资前三高所有员工,包含部门中工资相同的员工,

select B.name AS Department,A.Employee,A.Salary
from (select DepartmentId ,name as employee,salary,dense_rank() over (partition by departmentid order by salary desc) as rkfrom employee
) A
left join department B on A.departmentid = B.id
where A.rk <= 3

其中,

PARTITION BY子句将FROM子句生成的结果集划分为分区。

ORDER BY  子句指定DENSE_RANK()函数操作的每个分区中的行顺序。

DESC 是降序排列,ASC 是升序排列。

DENSE_RANK()函数应用于每个分区。

LEFT JOIN 是左连接查询,从左表A那里返回所有的行,即使在右表B中没有匹配的行。

参考链接:MySQL DENSE_RANK() 函数 | 新手教程 (begtut.com)

DENSE_RANK函数相关推荐

  1. Sql server 2005 中的dense_rank()函数的应用

    sql server 2005 排名提供dense_rank() 函数.实现起来非常简单. 示例如下: declare @t table(place int,score int) insert int ...

  2. MySQL DENSE_RANK函数简介

    MySQL DENSE_RANK函数简介 DENSE_RANK()是一个窗口函数,它为分区或结果集中的每一行分配排名,而排名值没有间隙. 语法: DENSE_RANK() OVER (PARTITIO ...

  3. [Mysql] RANK()函数 | ROW_NUMBER()函数 | DENSE_RANK()函数

    窗口函数的基本语法 <窗口函数> OVER ([PARTITION BY <用于分组的列>] ORDER BY <用于排序的列>) ※ []中的内容可以省略 注意: ...

  4. DENSE_RANK() 函数的使用

    业务场景:按月对每个工地状态进行评分, 满分一百分, 对每个工地评分后, 进行排名, 要求相同分数的工地排名相同 在我不知道DENSE_RANK()这个函数前, 我是对每个工地进行算分,所有工地是一个 ...

  5. Hive的Rank排名(rank函数,dense_rank函数,row_numer函数)

    目录 总结: 案例实操: 总结: RANK() 排序相同时会重复,总数不会变 DENSE_RANK() 排序相同时会重复,总数会减少 ROW_NUMBER() 会根据顺序计算 这三个函数常常和开窗函数 ...

  6. min聚合函数查询带有额外字段sql|dense_rank()over(partition)|+班级学生成绩最高

    oracle爱好者和群snowg的问题 上面的这个,有站点stationid,year,month,day和每天记录的day_tmin字段. 现在要求统计处每个stationid下面每月每日的最小da ...

  7. oracle 四分位函数,Oracle分析函数四——函数RANK,DENSE_RANK,FIRST,LAST…

    Oracle 分析函数--函数RANK,DENSE_RANK,FIRST,LAST- RANK 功能描述:根据 ORDER BY 子句中表达式的值,从查询返回的每一行,计算它们与其它行的相对位置.组内 ...

  8. SQL2005 四个排名函数(row_number、rank、dense_rank和ntile)的比较

    排名函数是SQL Server2005新加的功能.在SQL Server2005中有如下四个排名函数row_number.rank.dense_rank和ntile,需要的朋友可以参考下. 排名函数是 ...

  9. SQL With As 用法Sql 四大排名函数(ROW_NUMBER、RANK、DENSE_RANK、NTILE)简介

    Sql 四大排名函数(ROW_NUMBER.RANK.DENSE_RANK.NTILE)简介 排名函数是Sql Server2005新增的功能,下面简单介绍一下他们各自的用法和区别.我们新建一张Ord ...

  10. Oracle分析函数四——函数RANK,DENSE_RANK,FIRST,LAST…

    Oracle分析函数--函数RANK,DENSE_RANK,FIRST,LAST- RANK 功能描述:根据ORDER BY子句中表达式的值,从查询返回的每一行,计算它们与其它行的相对位置.组内的数据 ...

最新文章

  1. 解决scrapy安装失败
  2. 论文速递:智能作为信息处理系统
  3. 消费者行为模型_市场调查消费者行为研究模型
  4. jq封装post请求数据_GitHub - xiaohange/JQHttpRequest: GET/POST / PUT / DELETE 网络请求的封装...
  5. Canvas之进度条的制作(矩形,圆环)
  6. windows安装composer方法和使用方法
  7. utilities(matlab)—— 图像加噪
  8. 数据库的增加,删除,更新操作--mysql
  9. paip.log4j 日志系统 参数以及最佳实践
  10. Debian Gnu/Linux8.5安装GOLANG环境笔记
  11. ipcfg报错_CentOS服务器安装Anaconda
  12. 腾讯Tendis 号称能干掉 Redis ?你继续吹牛吧 !
  13. ZZULIOJ 1882: 蛤玮的魔法【数学】
  14. 【(类似DP)优化】 分梨子
  15. PHP实现常用设计模式之观察者模式
  16. uWSGI学习笔记3——使用uWSGI部署Flask应用
  17. 万维网、因特网和互联网的区别
  18. 面试-技术面试-问题模板(超实用)
  19. 使用java方式装配Bean
  20. 电子元器件、专业术语和芯片封装的基础知识

热门文章

  1. 《 浅 谈 C T F 》
  2. fbx 骨架_骨架修剪
  3. Java 盾神与积木游戏
  4. 设计模式——使用TypeScript实现代理模式
  5. 谷歌浏览器怎么调试php,如何简单快速调试高大上的谷歌浏览器
  6. Linux中docker的使用
  7. this在什么时候为undefined
  8. uniapp扫描二维码问题
  9. 冗余系统服务器切换的因素,揭秘 | 自动化冗余系统
  10. 怎么在运行上面看域名服务器,域名dns服务器查询方法是什么?如何查看dns服务器地址...