usunięcie duplikatów

0

Cześć,

Mam tabelę z trzema polami ID, UserID oraz TMSTMP:

ID USERID TMSTMP
1 1 '2018-10-01 2049'
2 1 '2018-10-01 2051'
3 1 '2018-10-01 2053'
4 2 '2018-10-01 2049'
5 2 '2018-10-01 2051'

Chciałbym usunąć duplikaty ale zastanawiam się jak dodatkowo dodać warunek różnicy w czasie między wpisami. Załóżmy, że chciałbym usunąć te rekordy dla których różnice między ostatnim a pierwszym wpisem wynoszą np. 5 sekund, pogrupowane po user_id. Na powyższym przykładzie po usunięciu w tabeli powinny zostać tylko wpisy o ID 1 i 2. Na razie mam zapytanie bez ograniczania TMSTMP:

DElETE FROM TABLE1
WHERE id IN (SELECT id
              FROM (SELECT id,
                     ROW_NUMBER() OVER (partition BY USERID
					 ORDER BY id) AS rnum
                     FROM TABLE1
					 ) t
              WHERE t.rnum > 1);
			  

Z góry dzięki za pomoc! :)

0

Wytłumacz, dlaczego ma zostać ID 1 i 2

1 użytkowników online, w tym zalogowanych: 0, gości: 1