我有一个表,其中包括 3 个字段,Machine Name
其中
表示将机器分配给项目的确切时间。Project Name
Date Time
Date Time
现在我想找到现在在特定项目中的机器(实际上可能是不同时间的一台机器分配给不同的项目)。
我希望持续的特定项目是机器分配给它的最新项目。
我有一个表,其中包括 3 个字段,Machine Name
其中
表示将机器分配给项目的确切时间。Project Name
Date Time
Date Time
现在我想找到现在在特定项目中的机器(实际上可能是不同时间的一台机器分配给不同的项目)。
我希望持续的特定项目是机器分配给它的最新项目。
听起来你可以使用这个:
select t1.ProjectName,
t2.Datetime,
t2.MachineName
from yourtable t1
left join
(
select max(datetime) DateTime, MachineName
from yourtable
group by MachineName
) t2
on t1.machinename = t2.machinename
and t1.datetime = t2.datetime
甚至:
select projectname, datetime, machinename
from
(
select projectname,
datetime,
machinename,
row_number() over(partition by machinename order by datetime desc) rn
from yourtable
) src
where rn = 1