我有以下格式的数据,我需要根据标志列值的变化生成标志\u日期列。
login_date id flag flag_date
5/1/2018 100 Y NULL
5/2/2018 100 Y NULL
5/3/2018 100 N 5/3/2018
5/4/2018 100 N 5/3/2018
5/5/2018 100 Y 5/3/2018
5/6/2018 100 Y 5/3/2018
5/7/2018 100 N 5/7/2018
5/8/2018 100 Y 5/7/2018
5/9/2018 100 Y 5/7/2018
5/10/2018 100 N 5/10/2018
最初,flag\u date值将为空,但当flag从y更改为n时,flag\u date将被填充,并且该值将继续,直到下一个y更改为n。请帮忙。
1条答案
按热度按时间jw5wzhpr1#
你的问题似乎很容易与窗口函数,但它是棘手的。存在与先前记录相关的标志,并且在存在连续的y/n时使用第一个值。
从t1开始,我们取prior_flag和prior_flag_dt,即fg_dt
从t2开始,我们整理出连续的n/y fg\u dt2
在t3中,我们再次回顾整理出的fg\u dt2。现在,连续y/n中的第一条记录将具有需要用于下一个y/n的正确值
在最后的查询中,您将得到结果。
看看这个: