-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来实现这一点。 –