sql >> Base de Datos >  >> RDS >> PostgreSQL

Agregar columna a la tabla con valor de la siguiente fila

Básicamente, creo que podría simplemente recuperar la marca de tiempo en el momento de la consulta, sin almacenarla en la tabla, pero si está realizando esa acción y cree que esto es lo que necesita, entonces:

Debe agregar esa columna a su tabla:

ALTER TABLE tablename ADD COLUMN te timestamp;

Luego realice una actualización alimentando el valor con el uso de LEAD función de ventana.

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

Aquí hay un ejemplo de cómo funciona usando datos enteros de muestra:SQL Fiddle .

Funcionará exactamente igual para timestamp valores de tipo de datos.