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

Tilføjelse af kolonne til tabel med værdi fra næste række

Grundlæggende tror jeg, at du bare kunne hente tidsstemplet på forespørgselstidspunktet, ikke gemme det i tabellen, men hvis du udfører en sådan handling og tror, ​​at det er det, du har brug for, så:

Du skal tilføje den kolonne til din tabel:

ALTER TABLE tablename ADD COLUMN te timestamp;

Udfør derefter en opdatering, der fodrer værdien ved hjælp af LEAD vinduesfunktion.

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

Her er et eksempel på, hvordan det fungerer ved at bruge eksempel på heltalsdata:SQL Fiddle .

Det vil udføre nøjagtig det samme for timestamp datatypeværdier.



  1. Ydeevnemyter:Klyngede vs. ikke-klyngede indekser

  2. Forespørgsel på stort datasæt ved tilmelding (15+ millioner rækker)

  3. TO_CHAR(tal) Funktion i Oracle

  4. Hvordan genererer man en hash af resultatsættet i Postgress?