sql >> Databáze >  >> RDS >> Oracle

Jak získat informace o předchozím záznamu

Chcete-li stáhnout Random_1 pro předchozí datum, použijte LAG() funkce, například:

select ... ,  lag(t1.random_1) over (order by t1.date_key), .....
from  table1 t1 join table2 t2 on t1.date_key = t2.date_key
...

(a to samé pro ostatní sloupce). Všimněte si, že výsledek LAG() bude samozřejmě NULL pro nejstarší řádek - protože neexistuje žádná "předchozí" hodnota. Pokud chcete pro první řádek něco jiného, ​​zabalte vše do COALESCE() .

Také, pokud máte id 's nějakého druhu a připojíte se pomocí id také pak nechcete míchat dohromady data pro různá ID. LAG() funkce (a téměř všechny další analytické funkce) vám umožňuje partition by id kromě objednání podle data. Definici a příklady si můžete přečíst v dokumentaci Oracle .




  1. Robustní přístup pro vytváření SQL dotazů programově

  2. Porovnání řešení selhání DBaaS s ručním nastavením obnovy

  3. django.db.utils.OperationalError:nelze se připojit k serveru:Žádný takový soubor nebo adresář

  4. Průlet:vytvořit pohled jako WITH (běžný tabulkový výraz CTE)