ऐसा लगता है कि आप समय के आधार पर पहला और आखिरी लेनदेन चाहते हैं। मुझे लगता है कि निम्नलिखित वही करता है जो आप चाहते हैं:
select item,
min(transaction) keep (dense_rank first order by timestamp) as StartTx,
min(transaction) keep (dense_rank last order by timestamp) as EndTx,
max(timestamp) - min(timestamp)
from transactions t
group by item;