sql >> Database >  >> RDS >> PostgreSQL

Kolom aan tabel toevoegen met waarde uit volgende rij

In principe denk ik dat je gewoon de tijdstempel op het moment van de vraag kunt ophalen en niet in de tabel kunt opslaan, maar als je een dergelijke actie uitvoert en denkt dat dit is wat je nodig hebt, dan:

U moet die kolom aan uw tabel toevoegen:

ALTER TABLE tablename ADD COLUMN te timestamp;

Voer vervolgens een update uit die de waarde invoert met behulp van LEAD vensterfunctie.

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

Hier is een voorbeeld van hoe het werkt met voorbeeldgegevens van gehele getallen:SQL Fiddle .

Het zal precies hetzelfde presteren voor timestamp gegevenstypewaarden.



  1. Indexeert Django Autofield / ID-sleutels in PostgreSQL?

  2. Is er een manier om een ​​filesort te vermijden wanneer de volgorde van verschilt van de waar-clausule?

  3. Vreemd gedrag met in orakel geneste cursors

  4. Zoek in een tekenreeks naar een patroon voor reguliere expressies en vervang elk voorkomen als een afleiding van zichzelf in Oracle SQL