sql >> Databáze >  >> RDS >> PostgreSQL

Přidání sloupce do tabulky s hodnotou z dalšího řádku

V zásadě si myslím, že byste mohli načíst časové razítko v době dotazu, neukládat ho do tabulky, ale pokud takovou akci provádíte a myslíte si, že to je to, co potřebujete, pak:

Tento sloupec musíte přidat do tabulky:

ALTER TABLE tablename ADD COLUMN te timestamp;

Poté proveďte aktualizaci přivádění hodnoty pomocí LEAD funkce okna.

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

Zde je příklad toho, jak to funguje pomocí ukázkových celočíselných dat:SQL Fiddle .

Úplně stejně bude fungovat pro timestamp hodnoty datového typu.



  1. Oracle MERGE:je spuštěno pouze NOT MATCHED

  2. SQL:Zjištění průměrného počtu dní mezi běhy pro každého běžce

  3. vyberte 2. řádek v Plsql

  4. PHP Laravel:Nebylo možné vytvořit žádné spojení, protože cílový počítač jej aktivně odmítl