PostgreSQL
 sql >> Base de données >  >> RDS >> PostgreSQL

Ajout d'une colonne au tableau avec la valeur de la ligne suivante

Fondamentalement, je pense que vous pourriez simplement récupérer l'horodatage au moment de la requête, sans le stocker dans la table, mais si vous effectuez une telle action et pensez que c'est ce dont vous avez besoin alors :

Vous devez ajouter cette colonne à votre tableau :

ALTER TABLE tablename ADD COLUMN te timestamp;

Ensuite, effectuez une mise à jour en alimentant la valeur avec l'utilisation de LEAD fonction fenêtre.

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

Voici un exemple de fonctionnement avec des exemples de données entières :SQL Fiddle .

Il fonctionnera exactement de la même manière pour timestamp valeurs de type de données.