我已经写下了一个查询,下面给出了从某个表中获取记录的信息。
select g.logtekst DESCRIPTION,g.loggruppe loggroup,TO_CHAR(d.logdato, 'MM-DD-YYYY HH24:MI:SS') logdate
,d.logtype,d.systemnavn,d.rkibrugernr username,d.psp_id customernumber
from logbasis_Trans d,logtyper g where d.logtype=g.logtype and d.logdato>Sysdate-720 .
VIR opslag VIR 03-10-2015 09:53:38 250 NTMF CONDLOGB 93939393
VIR opslag VIR 03-10-2015 13:53:52 250 NTMF CONDLOGB 93939393
Sog opslag VER 03-10-2015 14:45:30 251 NTMF CONDOLDB 91919191
Sog opslag VER 03-10-2015 14:45:31 251 NTMF CONDOLDB 91919191
Sag opslag VIR 03-10-2015 14:45:30 251 NTMF JONDOLDB 95919191
Sog opslag VJR 03-10-2015 14:45:31 251 NTMF CFNDOLDB 91719191
这基本上列出了查询结果的行。
现在,我只想要这样的 customerNumber (在这种情况下是最后一列),其中所有剩余的列都相同(Log Group Same),但时间差<1这些列之间的分钟。
在这种情况下,第一行和第二行是多个条目,因为时间戳相差1分钟和3-4列但不是5和6列。
可以修改这些查询以获取此类数据,或者可以在excel中进行某些操作,只删除这些类型的重复记录。
答案 0 :(得分:0)
使用此声明来获得微小差异:
(d.logdato - LAG(d.logdato, 1) OVER (PARTITION BY d.psp_id, d.logtype ORDER BY d.logdato))*24*60 AS diff_min
说明:
我们从此行获取logdato并从一组记录(LAG 1
)中的前一行(OVER
)中减去logdato,其中相同的psp_id和logtype(PARTITION BY
)由logdato({{ 1}}),最后我们将结果乘以得到天数的分钟