2015-01-26 58 views
1

我有一個rate_history表,每個員工的數據和他的工作職位的費率變化。我想在單個查詢中獲得每個員工的工作職位更改。所選作業是連續行中最新的更新。請注意,隨着時間的推移,相同的工作職位可以重新分配給員工。MySQL Group by continuous values

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

whya重新缺少ID 1,3和5。你需要最新的每個employess工作嗎?如果沒有,請問 – Santhosh 2015-01-26 20:33:45

+0

@Santhosh問題,可以請更詳細的對不起,我編輯過問題。我希望每個工作職位都發生變化 – dzona 2015-01-26 20:41:26

+0

@dzona'id'是員工ID嗎? – 2015-01-26 20:48:05

回答

3

好,這裏是基於我對您所提供的輸出理解我的小提琴鏈接,

您可以使用行號(不適用於MySQL,但使用環形交叉口),然後獲取具有與先前記錄不同的job_id的記錄。

Fiddle Link

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 
+0

我不希望使用額外的表格 – dzona 2015-01-26 22:07:46

+0

將其用作子查詢 – Santhosh 2015-01-26 22:08:13

+0

您確定您的數據集能夠正確表示問題嗎? – Strawberry 2015-01-26 22:53:27