对于以下使我发疯的机器人性能数据问题,请教一些建议真是太好了!我们在5个设施中拥有23个机器人,并将它们中的Spot数据(放置和拾取位置)收集到一个大表中。我有两个表#Temp2和#Temp2d如下:
#Temp2
ID Spot LastDiff
76544 21 23
76545 21 0
76546 23 21
76547 23 0
76548 21 35
76549 23 21
76550 21 23
76551 23 21
#Temp2d
IDmin Spot LastDiff
76544 21 23
76546 23 21
76548 21 23
76549 23 21
76550 21 23
76551 23 21
表#Temp2d源自#Temp2,并记录竞价编号的各个更改(重复的竞价编号已删除)。 (这90,000条记录的竞价编号数据由未显示的其他两列FacilityName和Robot划分)。 然后,我向#Temp2添加新列“ LastDiff”,以保存Spot更改前的最后一个不同值。要更新#Temp2的LastDiff列,请使用以下更新查询:
;with cte_1 as
(
select t1.IDmin, t1.spot, t1.lastDiff
from
(
select
IDmin
, spot
, LAG(spot,1,0) OVER(PARTITION BY FacilityName, Robot ORDER BY FacilityName, Robot) AS lastDiff
from #Temp2d
) t1
)
update #Temp2 set #Temp2.lastDiff = cte_1.lastDiff
from cte_1
where #Temp2.ID = cte_1.IDmin
问题在于,在#Temp2中的90,000行数据集中,大约30个LastDiff值是错误的,如上面的#Temp2表中的76,548行所示。错误似乎没有任何模式,它们在整个数据集中随机发生。解决该问题的任何帮助将不胜感激。