ich einen Datensatz muss bestehen bleiben, wo ich versuche, eine „Session-ID“ auf einem Zeitstempel auf Basis zu schaffen, wo bestimmte Ereignis (dh Last) in meinem Fall passiertwie verwende ich Windowing-Funktionen in SQL einen Datensatz
Meine Daten:
userid event timestamp
xyz load '2016-12-01 08:21:13:000'
xyz view '2016-12-01 08:21:14:000'
xyz view '2016-12-01 08:21:16:000'
xyz exit '2016-12-01 08:21:17:000'
xyz load '2016-12-02 08:01:13:000'
xyz view '2016-12-02 08:01:16:000'
abc load '2016-12-01 08:11:13:000'
abc view '2016-12-01 08:11:14:000'
Was ich versuche zu erreichen ist eine neue Spalte erstellen genannt session_start_timestamp, wo die Zeile vor der letzten „Last“ für jeden Benutzer markiert ist.
Ich weiß, wie man das macht, indem ich eine Teilmenge-Tabelle erstelle (indem ich den minimalen Zeitstempel und den Selbstbeitritt nehme), aber gibt es eine Lag/Lead/Max/Partitionsfunktion, die dies stattdessen tun kann?
sollte die endgültige Ausgabe wie folgt aussehen:
userid event timestamp session_start_timestamp
xyz load '2016-12-01 08:21:13:000' '2016-12-01 08:21:13:000'
xyz view '2016-12-01 08:21:14:000' '2016-12-01 08:21:13:000'
xyz view '2016-12-01 08:21:16:000' '2016-12-01 08:21:13:000'
xyz exit '2016-12-01 08:21:17:000' '2016-12-01 08:21:13:000'
xyz load '2016-12-02 08:01:13:000' '2016-12-02 08:01:13:000'
xyz view '2016-12-02 08:01:16:000' '2016-12-02 08:01:13:000'
abc load '2016-12-01 08:11:13:000' '2016-12-01 08:11:13:000'
abc view '2016-12-01 08:11:14:000' '2016-12-01 08:11:13:000'
Was ist Ihr RDBMS? –
Ich verwende db2. – shecode
ich kann mssql code in db2 umwandeln kannst du mir bitte ein beispiel geben – shecode