相同记录每隔60天计算一次,起始时间为第一条的创建时间

例 有表如下

编号创建时间相同id
1232022-1-12888
12342022-1-292888
123452022-2-102888
12222022-2-122888
12322022-2-124888
123242022-4-134888
1232542022-5-134888
1234562022-5-62888
22222022-5-63888
33332022-5-193888
444442022-6-163888

1.相同id : 相同记录的id值一样,和编号没有任何关系
2.编号:唯一
2.相同记录每隔60天计算一次,起始时间为第一条的创建时间,sql 怎么写
想要的结果

编号创建时间相同id
1232022-1-12888
12322022-2-124888
1232542022-5-134888
1234562022-5-62888
22222022-5-63888
是这个样子得吗
SELECT PID,NAME,DT,ID FROM (
SELECT PID,NAME,DT,ID ,ROW_NUMBER()OVER(PARTITION BY SUBSTR(DT,1,7),NAME ORDER BY DT  ) RO 
FROM (
SELECT  1 PID,2888 ID , '张三' AS NAME ,'2022-01-01' DT  FROM DUAL UNION ALL 
SELECT  2 PID,2888 ID , '张三' AS NAME ,'2022-01-29' DT  FROM DUAL UNION ALL 
SELECT  3 PID,2888 ID , '张三' AS NAME ,'2022-02-10' DT  FROM DUAL UNION ALL 
SELECT  4 PID,2888 ID , '张三' AS NAME ,'2022-02-12' DT  FROM DUAL UNION ALL 
SELECT  5 PID,2888 ID , '张三' AS NAME ,'2022-05-06' DT  FROM DUAL UNION ALL 
SELECT  6 PID,3888 ID , '李四' AS NAME ,'2022-05-06' DT  FROM DUAL UNION ALL 
SELECT  7 PID,3888 ID , '李四' AS NAME ,'2022-05-19' DT  FROM DUAL UNION ALL 
SELECT  8 PID,3888 ID , '李四' AS NAME ,'2022-06-16' DT  FROM DUAL  )) A 
WHERE RO = 1
select t.编号,t.创建时间,t.相同id 
  from 表 t 
  where exists (select 1 from (select t1.相同id, min(t1.创建时间)  创建时间 from 表 t1 group by t1.相同id) rs where rs.相同id = t.相同id and rs.创建时间 = t.创建时间)

可以通过2种方式实现每隔60天计算:
1、java代码定时轮询,网上很多教程
2、把以上sql语句写在oracle的函数或者存储过程里,通过oracle job实现轮询操作