怎么在第五行筛选?
这个问题,我一开始没太明白。不过根据我自己的经验来猜测一下,题主可能是想解决一个类似下面问题的问题: 假设表结构如下,如何利用sql语句实现,以姓名为key,将数据从第二行开始按顺序每五行提取一条记录(最后可能只剩五条)? 分析:这个问题可以转化为三个小问题,依次解决即可。
问题一、如何将数据从第二行开始每五行提取一行? 解决方法:这个问题比较简单,可以通过LAG()over()函数解决。参考代码如下: 问题二、如何去掉第一行的数据? 解决方法:这个问题同样简单,可以直接用LAG()over()函数解决。需要注意的是,这里我们需要特别排除第一个值。只需要在条件中增加一个NOT LAG(value_col) OVER() >= 1的条件即可,参考代码如下: 问题三、如何获取最后一行的数据? 解决方法:这个问题也简单,直接使用LAST()函数得到最后一条记录的ID即可。参考代码如下: 总结: 最后,按照以上方法,结合LAG()over()、LAST()和DELETE命令,就可以轻松删除指定行数范围内的所有行并返回被删除行数的记录集了。