我有rate_history表,每个员工的数据和他在工作岗位上的费率变化。我希望在单个查询中为每个员工更改工作职位。所选作业是连续行中最新更新的作业。请注意,随着时间的推移,可以将相同的工作职位重新分配给员工。
id job_id updated
1 1 01-01-2015
2 1 01-02-2015
3 2 01-01-2015
4 2 01-03-2015
5 2 01-02-2015
6 1 01-01-2015
结果应为:
id job_id updated
1 1 01-01-2015
3 2 01-01-2015
6 1 01-02-2015
答案 0 :(得分:3)
好的,根据我对你提供的输出的理解,这是我的小提琴链接,
您可以使用行号(不适用于mysql但使用环形交叉口),然后获取具有与先前记录不同的job_ids的记录。
select t1.id
, t1.job_id
, t1.updatedate
, t2.rn as rnt2
from temprwithrn as t1
left
join temprwithrn as t2
on t1.rn = t2.rn + 1
where t1.job_id <> t2.job_id or t2.job_id is null