row_number 和 cte 使用实例:求不连续的分段结果
求不连续的分段结果
问题同样出自问答区某个小伙伴的问题,原地址:https://ask.csdn.net/questions/7897228,不过这次的小伙伴问的是 mysql 的。当时老顾电脑上没有安装 mysql ,临时下载了安装,然后直接在命令行调试,所以当时的指令就显得很繁琐了。
小伙伴的需求从新描述一下:
有一些连续的数据,现在要按照数据中某列的递增顺序,给另外一列的数据进行连续片段的分组查询。
问答中,小伙伴很清楚的给出了逻辑,比如龙山路这个数据,他分成两个连续片段,而不是一个。那么问题来了,简单的 group by 已经无法实现这个小伙伴的需求了,所以,我们来用 cte 完成一次吧。
使用 cte 递归完成
在当时,老顾也没想那么多,就想着 cte 可以递归,那么就用 cte 来完成就可以了。按照递归分析一下需求:
1、每一个数据与之前的数