PostgreSQL
 sql >> Database >  >> RDS >> PostgreSQL

Aggiunta di una colonna alla tabella con il valore dalla riga successiva

Fondamentalmente penso che potresti semplicemente recuperare il timestamp al momento della query, non memorizzandolo nella tabella, ma se stai eseguendo tale azione e pensi che questo sia ciò di cui hai bisogno, allora:

Devi aggiungere quella colonna alla tua tabella:

ALTER TABLE tablename ADD COLUMN te timestamp;

Quindi eseguire un aggiornamento alimentando il valore con l'uso di LEAD funzione finestra.

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

Ecco un esempio di come funziona utilizzando dati interi di esempio:SQL Fiddle .

Funzionerà esattamente allo stesso modo per timestamp valori del tipo di dati.