2012-10-19 61 views
1

我已經通過在網站上張貼的材料研究,如果它是GROUP BYPARTITION BY,我似乎無法得到我想要的答案想不通。DB2 9.7重複行返回

我所擁有的是大量的TAG數據,我需要的是檢索它所見的位置的歷史記錄,即向我顯示上次在特定位置看到的位置。

我已經添加了一小部分數據。

我希望看到的是日期順序是最新的順序,因此我期望將ROW 01視爲第一個位置... 004,然後下一個條目將是ROW 209,因爲它是最新的條目。 ..50,然後行216..004再次,所以每次都有一個變化。

可以這樣用SQL語句來完成

感謝您的幫助,您可以提供

ROW TAG DATE 
001 004 2012-10-19 10:20 
002 004 2012-10-19 10:10 
003 004 2012-10-19 10:00 
209 050 2012-10-19 08:50 
210 050 2012-10-19 08:40 
211 050 2012-10-19 08:30 
216 004 2012-10-19 07:30 
217 004 2012-10-19 02:20 

回答

1

這裏是如何可以做到:

with last_records_tagged as (
    select 
     row, 
     tag, 
     date, 
     case when lead(tag) over (partition by tag order by date asc) is null 
      then 1 
      else 0 
     end as last 
     from your_table 
) 
select * from last_records_tagged where last = 1 

(我下令升日期,因爲它對我來說更有意義)。

基本上,任何時候,按日期排序的下一條記錄都有不同的標籤,您知道您處於該組的最後一條記錄。