栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

Oracle SQL:筛选仅相差很小时间的重复行

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Oracle SQL:筛选仅相差很小时间的重复行

您可以利用

range
分析函数的子句:

with dups as (  select t1.*       , row_number() over (partition by PKN_EVENTNAME, RECEIVEDDATEorder by id         ) as dup  from PARQUIMETERS_ALARMS t1), nodups as (  select * from dups where dup = 1), t as (  select nodups.ID, nodups.PKN_EVENTNAME, nodups.RECEIVEDDATE       , count(*) over (partition by nodups.PKN_EVENTNAMEorder by nodups.RECEIVEDDATErange between interval '10' second preceding and current row         ) as cnt  from nodups)select * from t where cnt = 1

(已更新:CTE,

dups
并且
nodups
在注释中显示的OP之后添加了重复的元组
(PKN_EVENTNAME, RECEIVEDDATE)
。)

说明:清除通过

nodups
CTE传递的数据后,该
where
条件仅过滤在最近10 s中仅存在单行的行(显然是当前行)。



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/517545.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号