首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Oracle SQL Developer比较行

Oracle SQL Developer比较行
EN

Stack Overflow用户
提问于 2014-03-31 14:58:23
回答 1查看 138关注 0票数 0

我正在使用Oracle SQL Developer,Version 4.0.0.13,Build 13.80

我有一个有趣的问题,我的查询以优先级(1到4)和日期/时间返回给我大量的数据。我要完成的是从具有优先级4的表中删除所有行,下一次发生的事件是在5分钟内从优先级1-3的前一个表中删除所有行。

也许这听起来很混乱,但是请看下面的数据。

代码语言:javascript
复制
           Date            Priority 
 - 2013-03-28 21:42:08        4 

 - 2013-03-28 21:45:20        1

 - 2013-03-28 21:45:16        1 

 - 2013-03-28 21:46:37        1

因此,我想从这里删除第一行,因为它具有优先级4,而且下一个事件发生在5分钟的时间框架内,并且在(1,2,3)中。如果下一行也是优先级4,我们只需忽略它并继续前进。

在表中,我有日期、优先级和RowID的列,那么如何检查优先级4之后的行并比较日期以查看5分钟的差异,当然,所有的事情都是按Date asc排序的?

谢谢

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-03-31 15:08:14

听起来你想要的是

代码语言:javascript
复制
DELETE FROM table_name a
 WHERE priority = 4
   AND EXISTS( SELECT 1
                 FROM table_name b
                WHERE b.priority IN (1,2,3)
                  AND b.id != a.id
                  AND b.dt BETWEEN a.dt AND a.dt + interval '5' minute )

我假设您的列名实际上不是rowiddate,因为它们是保留词。我使用的是iddt

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22764992

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档