usunięcie duplikatów

Odpowiedz Nowy wątek
2018-10-29 11:58
Mistrzowski Rycerz
0

Cześć,

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

ID USERID TMSTMP
1 1 '2018-10-01 20:00:49'
2 1 '2018-10-01 20:00:51'
3 1 '2018-10-01 20:00:53'
4 2 '2018-10-01 20:00:49'
5 2 '2018-10-01 20:00:51'

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! :)

Pozostało 580 znaków

2018-10-29 14:44
0

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

Pozostało 580 znaków

Odpowiedz
Liczba odpowiedzi na stronę

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