weixin_49716251 2022-05-25 10:54 采纳率: 42.9%
浏览 57
已结题

相同记录每隔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
  • 写回答

2条回答 默认 最新

  • 高辉杰' 2022-05-25 11:09
    关注
    是这个样子得吗
    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
    
    评论

报告相同问题?

问题事件

  • 已结题 (查看结题原因) 6月28日
  • 修改了问题 5月25日
  • 修改了问题 5月25日
  • 创建了问题 5月25日