安庆大理运城常德铜陵江西
投稿投诉
江西南阳
嘉兴昆明
铜陵滨州
广东西昌
常德梅州
兰州阳江
运城金华
广西萍乡
大理重庆
诸暨泉州
安庆南充
武汉辽宁

面试官编写一个SQL查询,找出每个部门工资第二高的员工

2月18日 碧落盟投稿
  今天我们来看看大数据开发中rownumber函数。
  作为一名程序员,求职面试时时常会遇到需要编写一些基础的sql,编写sql这样做的目的主要是考验求职者的逻辑思维及编写sql基础能力。而rownumber()函数在面试中得到了不少面试官的青睐,有的面试官喜欢用这个知识点来考察应聘者。
  我们来看看下面这道题目。
  有张员工表tbemployee表包含员工基本信息,每个员工有其对应的userid、username、salary和departmentname
  面试官:编写一个SQL查询,找出每个部门工资第二高的员工。
  这种情况我们可以尝试用rownumber()函数实现。
  语法rownumber()over(partitionby〔要分组的列〕orderby〔排序列〕)
  rownumber()函数将select语句返回的每一行,从1开始编号,赋予其连续的序号。在查询时应用了一个排序标准后,只有通过序号才能够保证其顺序是一致的,当使用rownumber()函数时,也需要专门一列用于预先排序以便于进行编号。
  partitionby关键字是分析性函数的一部分,它和聚合函数不同的地方在于它能返回一个分组中的多条记录,而聚合函数一般只有一条反映统计值的记录,partitionby用于给结果集分组,如果没有指定那么它把整个结果集作为一个分组,分区函数一般与排名函数一起使用。
  createtableifnotexiststest。tbemployee(useridint,usernamestring,salarydouble,departmentnamestring)rowformatdelimitedfieldsterminatedby,
  新增数据
  insertintotest。tbemployee(userid,username,salary,departmentname)values(1,李四,4000,运营部);insertintotest。tbemployee(userid,username,salary,departmentname)values(2,王五,5000,运营部);insertintotest。tbemployee(userid,username,salary,departmentname)values(3,张工,6000,运营部);insertintotest。tbemployee(userid,username,salary,departmentname)values(4,小爱,7000,运营部);insertintotest。tbemployee(userid,username,salary,departmentname)values(5,小张,3000,行政部);insertintotest。tbemployee(userid,username,salary,departmentname)values(6,小李,4000,行政部);insertintotest。tbemployee(userid,username,salary,departmentname)values(7,小王,5000,行政部);insertintotest。tbemployee(userid,username,salary,departmentname)values(8,小洪,6000,行政部);insertintotest。tbemployee(userid,username,salary,departmentname)values(9,小刘,7000,行政部);
  能看出每个部门工资第二高的员工分别为
  运营部编号为3的张工薪资6000
  行政部编号为8的小洪薪资6000
  那么Sql如何编写,我们可以用rownumber()这样写。
  selectfrom(select,rownumber()over(partitionbydepartmentnameorderbysalarydesc)asrnfromtest。tbemployee)asawherern2;
  运行结果:
  关于rownumber()函数,在大数据开发中,更多的是用来去重。可以根据分组,取rn1最新的一条记录。
  由于笔者知识及水平有限,文中错漏之处在所难免,如有不足之处,欢迎交流。
投诉 评论 转载

携手北斗,地大科研团队观测发抖的大地原标题:携手北斗,地大科研团队观测发抖的大地(记者张歆、通讯员林恺、庞伟红)在物质破坏之前,会出现类似抖动的共振现象,比如桌子在倒塌前,会发生细微抖动,直至倒塌。在……iPhon14还没首发,iPhone15被曝光了,苹果13香大家都知道苹果iPhone手机这几年在国内销量不断增加,主要还是华为的芯片受阻,新一代机型没法更新,让很多华为粉丝纷纷转向苹果品牌,特别是iPhone13系列首发后销量可以说稳……经纬下午茶FF91刚宣布三季度量产,贾跃亭就被恢复执行25亿【热点要闻】民航局回应吉祥航空客机风挡玻璃龟裂事件在今天(25日)举行的民航局新闻发布会上,对于发生在2月19日的吉祥航空客机风挡玻璃龟裂事件,民航局相关部门负责人予以了……即时零售加速破圈618迈入1小时达时代图说:达达快送骑士配送中采访对象供图新民晚报讯(记者金志刚)年中规模最大的电商大促618即将来临。本地即时零售和配送平台达达集团宣布,将在6月1日至20日期间,联合京东到……将再次改变世界的七大技术展望以前从来没有一个时代,技术进步在地球上引起如此迅速的发展。近年来,数字化和新技术已经从根本上改变了世界但仍然看不到尽头。相反,已经发生的事情激发了人们对在可预见的未来可能发生的……两千多亿填了海,美国半导体业接连受挫,中国芯片的春天来了长久以来,芯片研发和制造都被西方牢牢掌握,此前知名调研机构Gartner的数据显示,全球十大芯片巨头中,美国就占据了一半。但美国也有自己的苦恼,就是产业空心化十分严重,虽然芯片……让西方拆除5G基站,美国乡村却使用华为设备,任正非或成最大赢华为到底有多强?你知道吗,从今年开始,英国所有通信企业都被禁止购买华为5G设备;而且2027年前,华为公司在英国的5G基站将会被全部拆除。当时消息一传出就一石激起千层浪,……10Vue入门教程Vue双向绑定指令1。前言本小节我们将介绍Vue中数据的双向绑定指令vmodel。vmodel的学习相对简单。我们可以用vmodel指令在表单、及元素上创建双向数据绑定。它会根据控件类型自……36氪首发矿山无人驾驶公司路凯智行获数千万元融资,顺为资本领36氪获悉,路凯智行近日获得数千万元PreA轮融资,由顺为资本领投,中关村发展前沿基金、达泰资本跟投,青桐资本担任财务顾问。本轮融资过后,路凯智行将专注于产品场景化开发、标准化……面试官编写一个SQL查询,找出每个部门工资第二高的员工今天我们来看看大数据开发中rownumber函数。作为一名程序员,求职面试时时常会遇到需要编写一些基础的sql,编写sql这样做的目的主要是考验求职者的逻辑思维及编写sq……从入门到放弃,手机相机专业模式是不是骗局使用安卓手机的朋友都知道,安卓手机的相机里有一个专业模式,这对大部分人来说,这个功能没什么感觉,本来也没有打算用它。这个模式只要打开它,就能看到很多的专业参数,对于相机小白来说……2021年拍照最好手机,每一款都是影像机皇,你在用哪一款?要问现在手机除了各种聊天软件,移动支付以外用得最多的功能是哪一个,相信很多人都会回答拍照。现在很多小伙伴在遇到新鲜好玩的事情时,都会第一时间拿出手机拍下来并分享给朋友,加上女生……
哭坦居五弟其二折花柬金秀才幼孜栈道木偏桥易构以石俾安固永久千秋岁其二为王子丹麓五十赋丙子岁暮得王进士简泉舟中忆爪哇之游杂述八首其四将之塞上呈汪苕文农部河渎神湖上念金心斋张魏公三省研马通伯得之属题渔家傲其二十二月山家词,和钱

友情链接:中准网聚热点快百科快传网快生活快软网快好知文好找七猫云易事利