我的数据集包括在拥有的设备上的测试,但是可以购买和转售设备,我们只希望测试与最新所有权相关联。
数据集看起来像这样:
TestID ProductID RegistrationID TestDate
00021357916020 P3K25EL141297 89D617 2019-07-22
00021357915928 P3K25EL141297 89D617 2019-07-15
00021353422334 P3K25EL141297 5PKY90 2019-05-31
我需要改进,仅包括注册89D617的测试,因为这些是拥有最新所有权的测试。我们没有提供有关所有权变更的任何参考信息,并且注册ID并未以有意义的顺序增加,因此我无法找到一种将它们分组的方法。
您似乎想要每个RegistrationID
的最新行。如果是这样,一个简单的选项是使用相关子查询进行过滤;
select t.*
from mytable t
where t.testDate = (
select max(t1.testDate)
from mytable t1
where t1.RegistrationID = t.RegistrationID
)
此查询将优先使用(RegistrationID, testDate)
上的索引。