2015-04-22 104 views
-2

我有一張表,其中包含一個ID,WorkerID,一個標誌(1或0)以顯示它們何時開啓或關閉移位以及記錄該標誌值的日期。我想從這張表中,爲每個唯一的workerID,只有當這個最新日期的標誌等於1時,標誌被記錄的最後日期(1或0)。任何人都可以幫忙嗎?只有在滿足特定條件時才選擇最後一條記錄

+2

如果您需要實際查詢,請提供樣本數據。除此之外:使用row_number來實現這一點。 –

回答

2

如果我理解正確的話,你似乎想用戶的行,其中日誌標誌爲1

這表明row_number()

select t.* 
from (select t.*, row_number() over (partition by workerId order by date desc) as seqnum 
     from table t 
    ) t 
where seqnum = 1 and flag = 1; 

注意:你的問題是用樣本數據要好得多和期望的結果。

+0

我明白op需要每個workerid的日期 –

相關問題