我正在尋找24小時內的5分鐘窗口之間的重複交易。我正在嘗試查找用戶濫用其他用戶訪問權限。這是我迄今爲止的,但它只是搜索過去5分鐘,而不是搜索24小時內。這是ORACLE。在24小時內尋找5分鐘內的重複交易
SELECT p.id, Count(*) count
FROM tranledg tl,
patron p
WHERE p.id = tl.patronid
AND tl.trandate > (sysdate-5/1440)
AND tl.plandesignation in ('1')
AND p.id in (select id from tranledg tl where tl.trandate > (sysdate-1))
GROUP BY p.id
HAVING COUNT(*)> 1
實施例的數據:
本主
id | Name
--------------------------
1 | Joe
2 | Henry
3 | Tom
4 | Mary
5 | Sue
6 | Marie
Tranledg
tranid | trandate | location | patronid
--------------------------
1 | 2015-03-01 12:01:00 | 1500 | 1
2 | 2015-03-01 12:01:15 | 1500 | 2
3 | 2015-03-01 12:03:30 | 1500 | 1
4 | 2015-03-01 12:04:00 | 1500 | 3
5 | 2015-03-01 15:01:00 | 1500 | 4
6 | 2015-03-01 15:01:15 | 1500 | 4
7 | 2015-03-01 17:01:15 | 1500 | 2
8 | 2015-03-01 18:01:30 | 1500 | 1
9 | 2015-03-01 19:02:00 | 1500 | 3
10 | 2015-03-01 20:01:00 | 1500 | 4
11 | 2015-03-01 21:01:00 | 1500 | 5
我期望如下的數據返回:
ID | COUNT
1 | 2
4 | 2
請添加表模式和期望的結果。 – McNets
標記您正在使用的dbms。 (有一些非ANSI SQL) – jarlh
我在那裏用'sysdate'猜測Oracle(MySQL有'SYSDATE()',但它是一個函數)。 –