Sql 每个“重复”组只保留一个报警?@DiegoPerez为了消除重复,必须在进行10秒耐久性测试之前过滤数据。请参阅我的答案中更新的查询。 select t1.ID, t1.PKN_EVENTNAME, t1.RECEIVEDDATE from PARQUI
Sql 每个“重复”组只保留一个报警?@DiegoPerez为了消除重复,必须在进行10秒耐久性测试之前过滤数据。请参阅我的答案中更新的查询。 select t1.ID, t1.PKN_EVENTNAME, t1.RECEIVEDDATE from PARQUI,sql,oracle,datediff,date-difference,Sql,Oracle,Datediff,Date Difference,每个“重复”组只保留一个报警?@DiegoPerez为了消除重复,必须在进行10秒耐久性测试之前过滤数据。请参阅我的答案中更新的查询。 select t1.ID, t1.PKN_EVENTNAME, t1.RECEIVEDDATE from PARQUIMETERS_ALARMS t1 where exists (select 'x' from PARQUIMETERS_ALARMS t2 where t1.id <> t2.id
每个“重复”组只保留一个报警?@DiegoPerez为了消除重复,必须在进行10秒耐久性测试之前过滤数据。请参阅我的答案中更新的查询。
select t1.ID, t1.PKN_EVENTNAME, t1.RECEIVEDDATE
from PARQUIMETERS_ALARMS t1
where
exists
(select 'x'
from PARQUIMETERS_ALARMS t2
where t1.id <> t2.id and -- Not the same row
trunc(t2.RECEIVEDDATE) = trunc(t1.RECEIVEDDATE) -- Same date
and abs(t1.RECEIVEDDATE - t2.RECEIVEDDATE) * 24 * 60 * 60 < 10) -- < 10 sec
select t1.ID, t1.PKN_EVENTNAME, t1.RECEIVEDDATE
from PARQUIMETERS_ALARMS t1
where
exists
(select 'x'
from PARQUIMETERS_ALARMS t2
where t1.id <> t2.id -- Not the same row
--trunc(t2.RECEIVEDDATE) = trunc(t1.RECEIVEDDATE) -- this is not needed
and t1.PKN_EVENTNAME = t2.PKN_EVENTNAME -- added this
and abs(t1.RECEIVEDDATE - t2.RECEIVEDDATE) * 24 * 60 * 60 < 10) -- < 5 sec
with alarms as (
select pa.*,
lag(pa.RECEIVEDDATE) over (partition by pa.pkn_eventName
order by pa.recievedDate) prior_receivedDate
from PARQUIMETERS_ALARMS pa
)
select *
from alarms
where receivedDate - prior_receivedDate <= interval '10' second;