2014-02-07 56 views
0

我有一個表(實際上是一個子查詢結果)元組爲DATENUMBER。日期是無間隙的,並在給定的時間段內進行排序。如何獲取日期/值元組行中值更改的日期?

countdate | countvalue 
----------------------- 
2014-01-01 | 5 
2014-01-02 | 5 
2014-01-03 | 5 
2014-01-04 | 4 
2014-01-05 | 4 
2014-01-06 | 4 
2014-01-07 | 5 

如何選擇countvalue與前一天相比發生變化的所有countdates(具有相應的countvalue)?

+0

什麼數據庫您使用的? –

+0

Oracle 11g,但ANSI SQL解決方案會更好。 – Zeemee

回答

1

ANSI標準lag()功能你想要做什麼:

select s.countdate, s.countvalue 
from (select s.*, lag(countvalue) over (order by countdate) as prevvalue 
     from (<subquery>) s 
    ) s 
where prevvalue is null or prevvalue <> countvalue;