Zeitdifferenz von Objekten

Hans_Hoch

Neuer Benutzer
Beiträge
1
Hallo Leute!

Ich hoffe ihr könnte mir helfen?!

Ich arbeite mit SAS EG (PROC SQL) und möchte die folgende Abfrage erstellen:

Ich möchte die zeitliche Differenz (in Sekunden) von zw. den timestamps "e" eines Objekts mit einer einmaligen ID "ipid" berechnen. Die Daten sind zuerst nach der ID und dann nach dem timestamp sortiert.

SAS Enterprise Guide.png


Ich habe es mit DATEDIFF versucht:

SELECT DATEDIFF (second, ptime, e), q.*
FROM (SELECT *,
LAG(e) OVER (PARTITION BY ipid ORDER BY e) ptime
FROM Table ) q
WHERE ptime IS NOT NULL

Aber " The LAG function is not supported in PROC SQL, it is only valid within the DATA step."

habt ihr eine andere Idee?

VG!!
 
Werbung:
Was verwendest Du? MySQL?

Da mein OCR-Programm grad zur Reparatur ist, habe ich eine halbwegs ähnliche Tabelle erstellt:

Code:
test=# create table hans_hoch(id serial primary key, ipid int, e int);
CREATE TABLE
test=*# insert into hans_hoch (ipid, e) values (33, 10);
INSERT 0 1
test=*# insert into hans_hoch (ipid, e) values (33, 12);
INSERT 0 1
test=*# insert into hans_hoch (ipid, e) values (33, 18);
INSERT 0 1
test=*# insert into hans_hoch (ipid, e) values (99, 118);
INSERT 0 1
test=*# insert into hans_hoch (ipid, e) values (99, 126);
INSERT 0 1
test=*# insert into hans_hoch (ipid, e) values (99, 144);
INSERT 0 1
test=*# select *, e - lag(e) over (partition by ipid order by id) from hans_hoch;
 id | ipid |  e  | ?column?
----+------+-----+----------
  1 |   33 |  10 |         
  2 |   33 |  12 |        2
  3 |   33 |  18 |        6
  4 |   99 | 118 |         
  5 |   99 | 126 |        8
  6 |   99 | 144 |       18
(6 Zeilen)

test=*#

Sollte sein, was Du suchst. Ist aber auch kein MySQL.
 
Zurück
Oben