PostgreSQL
 sql >> база данни >  >> RDS >> PostgreSQL

Добавяне на колона към таблицата със стойност от следващия ред

По принцип мисля, че можете просто да извлечете клеймото за време по време на заявката, без да го съхранявате в таблицата, но ако извършвате такова действие и мислите, че това е, от което имате нужда, тогава:

Трябва да добавите тази колона към вашата таблица:

ALTER TABLE tablename ADD COLUMN te timestamp;

След това извършете актуализация, подавайки стойността с помощта на LEAD функция прозорец.

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

Ето пример за това как работи с помощта на примерни цели числа:SQL Fiddle .

Ще работи точно по същия начин за timestamp стойности на тип данни.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Как да автоматизирате PostgreSQL 12 репликация и отказ с repmgr – част 2

  2. създаването на разширение pg_cron в docker-entrypoint-initdb.d е неуспешно

  3. Как мога да импортирам JSON файл в PostgreSQL?

  4. Алтернативен изходен формат за psql

  5. Функция PostgreSQL age():различни/неочаквани резултати при кацане в друг месец