设为首页 加入收藏

TOP

实际SQL案例解决方法整理_LEAD函数相关(一)
2019-09-17 16:59:57 】 浏览:37
Tags:实际 SQL 案例 解决 方法 整理 _LEAD 函数 相关

表结构及数据如下:

 

需求:

将记录按照时间顺序排列,每三条记录为一组,若第二条记录与第一条记录相差5分钟,则删除该记录,若第三条与第二条记录相差5分钟,则删除该记录,

第二组同理,遍历全表,按要求删除记录。

例如:

95500100000100500三条记录为一组,后两条记录均满足条件,均删除。(注意:虽然101000的记录与100500的记录也相差5分钟,但不是同一组,不能删除)

 

处理SQL如下:

WITH T AS

 (SELECT TIME_,

         DEL_TIME_2,

         CASE

           WHEN LABEL_ = 2 THEN

            NULL

           ELSE

            DEL_TIME_3

         END AS DEL_TIME_3

    FROM (SELECT TIME_,

                 LABEL_,

                 CASE

                   WHEN (TO_DATE(TIME_2, 'HH24:MI:SS') -

                        TO_DATE(TIME_, 'HH24:MI:SS')) * 24 * 60 = 5 THEN

                    TIME_2

                   ELSE

                    NULL

                 END AS DEL_TIME_2,

                 CASE

                   WHEN (TO_DATE(TIME_3, 'HH24:MI:SS') -

                        TO_DATE(TIME_2, 'HH24:MI:SS')) * 24 * 60 = 5 THEN

                    TIME_3

                   ELSE

                    NULL

                 END AS DEL_TIME_3

            FROM (SELECT TIME_, TIME_2, TIME_3, MOD(RN, 3) AS LABEL_

                    FROM (SELECT TIME_,

                  &n

首页 上一页 1 2 下一页 尾页 1/2/2
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇用一条SQL语句显示所有可能的比赛.. 下一篇ODI使用流程

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目