2015-04-22 38 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的日期 –

相关问题