sql中筛选第一条记录

  • 时间:
  • 浏览:4
  • 来源:爱乐彩网站_爱乐彩下载_爱乐彩官网

亲戚亲戚亲们儿现在有一张表titles,共有俩个多多多 字段,分别是emp_no(员工编号),title(职位),from_date(起始时间),to_date(刚现在开始时间),记录的是员工在某个时间段内职位名称,可能会发生升职,转岗类式的,底下emp_no可能会对应多个职位,亲戚亲戚亲们儿现在要取到所有员工最近的职位信息,包括离职员工。

image.png

RANK() OVER (PARTITION BY emp_no ORDER BY from_date DESC) AS rank表示把表根据emp_no进行分区,有时候在分区内根据from_date进行降序排列,排序结果生成一列命名为rank。

亲戚亲戚亲们儿时候在大间题底下提到了俩个多多多 emp_no会对应多条职位信息,有时候对于每个emp_no的记录进行俩个多多多 降序排列,接下来亲戚亲戚亲们儿只都要把底下的结果当成俩个多多多 子查询有时候筛选rank = 1 就好了。

嵌套俩个多多多 group by+max()子查询获取最近的职位信息。

结果如下:

综上,可能各位目前使用的是Oracle,推荐各位使用土依据二:

peace~

结果如下:

本文介绍某种土依据去实现结果:

通过rank over partition by函数实现,你某种目前是Oracle独有的函数,可能你用的是mysql可能sql server就没土依据使用了。

功能:在原有表的基础加上上俩个多多多 根据条件排序的伪列。

image.png

可能我笔记本只装了mysql的环境,什么都 就那么给各位展示效果了。