最近碰到这样一个需求,测算连续逾期3期或者累计逾期6期的件,并找到触发这个条件是在哪一期。
实现的关键是group_contact函数。
首先给每期还款状态打标flag,1逾期,0不逾期。
select group_contact(flag order by 期数 asc SEPARATOR '') as flag_concat from 原表;
得到如下效果
然后定位locate('111',flag_concat)+2 as position位置,就知道是第几期了(放款月加几个月即回购月)
对于累计6次的求解,嵌套调用6次locate函数即可。