题目来源:牛客sql练习题  对所有员工的薪水按照salary降序进行1-N的排名_牛客题霸_牛客网

题目描述:

有一个薪水表salaries简况如下:

对所有员工的薪水按照salary降序进行1-N的排名,要求相同salary并列,且按照emp_no升序排列:

分析:

这道题目考察的是SQL窗口函数(OLAP函数)中用于排序的专用窗口函数用法

下面介绍三种用于进行排序的专用窗口函数:

1、RANK()

在计算排序时,若存在相同位次,会跳过之后的位次。

例如,有3条排在第1位时,排序为:1,1,1,4······

2、DENSE_RANK()

这就是题目中所用到的函数,在计算排序时,若存在相同位次,不会跳过之后的位次。

例如,有3条排在第1位时,排序为:1,1,1,2······

3、ROW_NUMBER()

这个函数赋予唯一的连续位次。

例如,有3条排在第1位时,排序为:1,2,3,4······

窗口函数用法:

<窗口函数> OVER ( [PARTITION BY <列清单> ]

ORDER BY <排序用列清单> )

*其中[ ]中的内容可以忽略

解答:

select emp_no, salary, dense_rank() over(order by salary desc) as t_rank
from salaries
order by t_rank asc, emp_no asc;

MySQL中rank函数的使用相关推荐

  1. mysql替换sql中rank函数_MySQL sql Rank()函数实现

    一字符串类 Ø  Concat函数:连接字符串 Ø  Instr函数:返回字符串在某一个字段的内容中的位置, 没有找到字符串返回0,否则返回位置(从1开始) Ø  字符串大小写转换[upper().u ...

  2. Mysql中rank类的函数用法

    Mysql中rank类的函数用法 rank() over 作用:查出指定条件后的进行排名,条件相同排名相同,排名间断不连续. 说明:例如学生排名,使用这个函数,成绩相同的两名是并列,下一位同学空出所占 ...

  3. php excel 函数,php实现excel中rank函数功能的方法

    php实现excel中rank函数功能的方法 发布于 2015-10-28 18:54:25 | 77 次阅读 | 评论: 0 | 来源: 网友投递 PHP开源脚本语言PHP(外文名: Hyperte ...

  4. mysql中concat函数的使用相关总结

    concat(str1,str2) 返回结果为连接参数产生的字符串.如有任何一个参数为NULL ,则返回值为 NULL. mysql> select concat('11','22','33') ...

  5. Oracle中concat与||区别(以及与mysql中concat函数区别)

    Oracle中concat使用以及与||区别 CONCAT只能连接两个字符串 The syntax for the concat function is: concat( string1, strin ...

  6. mysql中合并函数_MYSQL分组合并函数

    MySQL中group_concat函数 完整的语法如下: group_concat([DISTINCT] 要连接的字段 [Order BY ASC/DESC 排序字段] [Separator '分隔 ...

  7. mysql中find_in_set()函数的使用及in()用法详解

    From: http://www.manongjc.com/article/2710.html MySQL手册中find_in_set函数的语法解释: FIND_IN_SET(str,strlist) ...

  8. MySQL中concat函数(连接字符串)

    MySQL中concat函数(连接字符串) MySQL中concat函数 使用方法: concat(str1,str2,-) 返回结果为连接参数产生的字符串.如有任何一个参数为NULL ,则返回值为 ...

  9. mysql必会语法_sql语法:sql必读必会(二)mysql中的函数大全

    AVG 函数 作用:AVG 函数返回数值列的平均值.NULL 值不包括在计算中 语法:SELECT AVG(列) FROM 表 求id平均值(实在没字段了,就是意思意思) id大于平均值的记录 COU ...

  10. MySQL中时间函数NOW()和SYSDATE()的区别

    mysql中日期函数还是比较常用的.主要有NOW()和SYSDATE()两种,虽然都表示当前时间,但使用上有一点点区别. NOW()取的是语句开始执行的时间,SYSDATE()取的是动态的实时时间. ...

最新文章

  1. MySQL的安装过程
  2. 15 位学神争霸!2019 清华本科生特奖答辩入围名单公布
  3. mysql中取出的时间日期多个.0
  4. 15.PHP_PHP与Ajax
  5. lora无线模块基于LoRaWAN网关技术在国家物联网应用
  6. Java笔记05-Collection、泛型、迭代器
  7. TNFBA治疗极早期中轴型nrSpA随机双盲试验后长达6年的放射学随访
  8. java 反射 泛型 构造函数_Java复习——反射和泛型的复习
  9. 原生node写一个静态资源服务器
  10. python接口自动化(三十一)--html测试报告通过邮件发出去——下(详解)
  11. TeeChart Pro VCL/FMX教程(六):使用系列(二)
  12. CentOS 7 根目录分区扩容
  13. 李开复给大学生的第7封信:21世纪最需要的7种人才
  14. 用清除cookies的方式实现防止重复投票,值得收藏学习!
  15. 微分几何 Class 2 欧氏空间
  16. python数字转换拼音程序_课内资源 - 基于Python的拼音汉字转换程序
  17. JAVA 静态方法和成员方法、静态方法的调用
  18. d3.js 旋转图形_知识地图丨小学数学要学习哪些几何图形?
  19. STM32+MLX90614红外测温
  20. Csharp中的关键字示例及代码演示之类

热门文章

  1. (法)H.嘉当(H.Cartan)、塞尔(J.P.Serre)、施瓦茨(L.Schwartz)等[著],刘应明、胡师度[译]:代数结构与拓扑结构
  2. 【LGP5108】仰望半月的夜空
  3. 公历转农历C语言课程设计,(只为学习)公历转农历代码以完成,请高手在此代码基础上写出个农历转公历的代码出来...
  4. 【转】精益看板核心实践大作战
  5. Monkey log 分析
  6. python中的snip用法_--snip--总是报错,找了好久不知道问题出在哪,望大佬求解(python-pygame)...
  7. 桌面虚拟化技术介绍和对比
  8. The way的用法
  9. 网易云阅读页面html代码,网易云阅读网页端资讯阅读器设计总结
  10. Problem : 闰年闰月