PostgreSQL
 sql >> Datenbank >  >> RDS >> PostgreSQL

Hinzufügen einer Spalte zur Tabelle mit Wert aus der nächsten Zeile

Grundsätzlich denke ich, dass Sie den Zeitstempel einfach zum Zeitpunkt der Abfrage abrufen und nicht in der Tabelle speichern könnten, aber wenn Sie eine solche Aktion ausführen und denken, dass Sie dies brauchen, dann:

Sie müssen diese Spalte zu Ihrer Tabelle hinzufügen:

ALTER TABLE tablename ADD COLUMN te timestamp;

Führen Sie dann ein Update durch, indem Sie den Wert mit LEAD füttern Fensterfunktion.

UPDATE tablename t
SET te = x.te
FROM (
  SELECT ts, lead(ts, 1) OVER (order by ts) AS te
  FROM tablename t2
  ) x
WHERE t.ts = x.ts

Hier ist ein Beispiel dafür, wie es mit ganzzahligen Beispieldaten funktioniert:SQL Fiddle .

Für timestamp verhält es sich genauso Datentypwerte.