Analytické funkce LAG() a LEAD() v Oracle 8.1.7 a vyšším

Written by Tom Hublek on July 15th, 2004

Analytické funkce LAG() a LEAD() umožňují přistupovat k předchozím (LAG) a dalším (LEAD) řádkům v selectu.

<> Je to užitečné, pokud máte například tabulku transakcí a chcete najít jenom ty transakce, které nejsou následovány jejich undo transakcí.

Select pak může vypadat takto:

SELECT * FROM (	SELECT *, transactionCode		LEAD(transactionCode,1) over (order by lotId, eventId) nextTransactionCode 	FROM m_event 	WHERE transactionCode IN ('TRANSAKCE','UNDO-TRANSACKCE)		ORDER BY lotid, eventid ) WHERE transactionCode='TRANSAKCE' AND nextTransaction <> 'UNDO-TRANSAKCE'

Pěkný příklad najdete např. na http://www.adp-gmbh.ch/ora/sql/analytical/lag.html

Share
 

Leave a Comment





*

Spam Protection by WP-SpamFree

Switch to our mobile site