我在MySql中提到的表下面。
ID UniqueId Date
T-1 AT-1 2018-04-03 15:16:48
T-2 AT-1 2018-04-10 18:21:24
T-3 AT-1 2018-04-22 13:05:16
T-4 AT-2 2018-05-05 17:12:04
T-5 AT-2 2018-05-15 05:03:01
T-6 AT-2 2018-05-25 06:09:23
T-7 AT-3 2018-06-01 06:09:23
T-8 AT-3 2018-06-25 06:09:23
T-9 AT-3 2018-07-01 06:09:23
我想获取只有那些记录,其中最新ID
的基础UniqueId
早于或等于10天。
例如,ID
T3是最新ID
的UniqueId
AT-2
日期基准,而立即ID
T2之间的差值为12天。
另外,如果使用R可行,那也可以:)
预期产量:
ID UniqueId Date Difference
T-3 AT-1 2018-04-22 13:05:16 12
T-6 AT-2 2018-05-25 06:09:23 10
您可以EXISTS
用来检查条件:
SELECT *
FROM t
WHERE NOT EXISTS (
-- no newer row exists
SELECT 1
FROM t AS n
WHERE n.UniqueId = t.UniqueId
AND n.Date > t.Date
) AND NOT EXISTS (
-- no older row exists that has difference of less than 10 days
SELECT 1
FROM t AS o
WHERE o.UniqueId = t.UniqueId
AND o.Date < t.Date
AND o.Date >= t.Date - INTERVAL 10 DAY
)
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句