SELECT *, value - nextvalue AS diff
FROM (
SELECT m.*, LEAD(value) OVER (ORDER BY date DESC) AS nextvalue
FROM mytable m
ORDER BY
date DESC
)
WHERE rownum = 1
Update:
To select results company-wise:
SELECT value - nextvalue AS diff
FROM (
SELECT m.*,
LEAD(value) OVER (PARTITION BY companyId ORDER BY date DESC) AS nextvalue,
ROW_NUMBER() OVER (PARTITION BY companyId ORDER BY date DESC) AS rn
FROM mytable m
)
WHERE rn = 1
Quassnoi
2010-01-15 14:08:28