如果我有如下数据
A | 01/01/2008 00:00:00
B | 01/01/2008 01:00:00
A | 01/01/2008 11:59:00
C | 02/01/2008 00:00:00
D | 02/01/2008 01:00:00
D | 02/01/2008 20:00:00
我想只选择标识符(A,B,C或D)在12小时内发生两次的记录.在上面这个例子中,这只是'A'
任何人都可以帮忙(这是针对Oracle数据库)
谢谢
中号
Select Distinct A.Identifer From Table A Join Table B -- EDIT to eliminate self Joins (to same row) On A.PrimKey <> B.PrimaryKey And A.Identifer = B.Identifer -- EDIT to fix case where 2 at same time And A.OccurTime >= B.OccurTime And A.OccurTime < B.OccurTime + .5
并实施评论中提出的问题,(忽略不同日期的记录)
- 对于SQL Server,
Select Distinct A.Identifer From Table A Join Table B On A.PrimKey <> B.PrimaryKey And A.Identifer = B.Identifer -- EDIT to fix case where 2 at same time And A.OccurTime >= B.OccurTime And A.OccurTime < B.OccurTime + .5 Where DateDiff(day, A.OccurTime, B.OccurTime) = 0
- 或者是oracle ......
Select Distinct A.Identifer From Table A Join Table B On A.PrimKey <> B.PrimaryKey And A.Identifer = B.Identifer -- EDIT to fix case where 2 at same time And A.OccurTime >= B.OccurTime And A.OccurTime < B.OccurTime + .5 Where Trunc(A.OccurTime) = Trunc(B.OccurTime)