SQL ORACLE MYSQL 最大连续日期计算

需求:最大连续日期

不知道大家有没有遇到类似这样的问题?如果认为本文校验方法和观点不错的话,记得收藏生气生气


针对目前的最大连续日期,处理的难点如下几个所示:
      1.连续性。连续性决定了日期的跳跃和不可以把控。中断的连续日期如何重新开始新的日期计数。
      2.同一个日期里存在多个数据,需要对相同数据日期打上同一个标签。


优点:可以看到不同区间段的时间连续性,在其他用户习惯行为分析比较贴切。
缺点:有一个业务情景可能会冲突,就是在多个相同连续天数,这个地方处理目前还不是很合理。
      (建议对最大的连续天数再次group by 分组,取出组内的最大日期和最小日期。)


如有其它补充,欢迎留言。




方法一:
利用 dense_rank函数 对连续的日期进行去重排序 得到一个日期对应的序号。
--用日期减去序号得到一个假定的起始连续开始日期(这里的日期不一定是真实意义的连续开始日期)。
相同序号出现最多的日期为最大连续的时间段。
真实的连续起始日期为序号出现最多次数的最小日期。
只支持dense_rank的数据能用这个方法(SQLSERVER ORACLE)。




with t_lianxu as
(
select c.id,c.first_lianxu_time,count(distinct c.rn) lianxu_t
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值