-2
我有一張表,其中包含一個ID,WorkerID,一個標誌(1或0)以顯示它們何時開啓或關閉移位以及記錄該標誌值的日期。我想從這張表中,爲每個唯一的workerID,只有當這個最新日期的標誌等於1時,標誌被記錄的最後日期(1或0)。任何人都可以幫忙嗎?只有在滿足特定條件時才選擇最後一條記錄
我有一張表,其中包含一個ID,WorkerID,一個標誌(1或0)以顯示它們何時開啓或關閉移位以及記錄該標誌值的日期。我想從這張表中,爲每個唯一的workerID,只有當這個最新日期的標誌等於1時,標誌被記錄的最後日期(1或0)。任何人都可以幫忙嗎?只有在滿足特定條件時才選擇最後一條記錄
如果我理解正確的話,你似乎想用戶的行,其中日誌標誌爲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;
注意:你的問題是用樣本數據要好得多和期望的結果。
我明白op需要每個workerid的日期 –
如果您需要實際查詢,請提供樣本數據。除此之外:使用row_number來實現這一點。 –