2010-04-15 22 views
0

這是我的問題,我有如下措施的列表:我沒有找到SQL請求

src1 dst2 24th december 2009 
src1 dst3 22th december 2009 
src1 dst2 18th december 2009 

我想有隻與SQL請求的最新措施 - > 2條第一線在我的情況下,因爲對(src和dst)不一樣。

我嘗試使用DISTINCT,但我只有2個第一列,我將所有列。 我嘗試了GROUP BY,但我沒有成功。

任何人都可以幫到我嗎?

THX

Narglix

回答

0
select src, dst, max(date) as Date 
from MyTable 
group by src, dst 

更新:

select * 
from MyTable t 
inner join (
    select src, dst, max(date) as Date 
    from MyTable 
    group by src, dst 
) tm on t.src = tm.src and t.dst = tm.dst and t.Date = tm.Date 
+0

我的目錄被簡化,我也有其它列,但我不能用最大他們的情況? – user301089 2010-04-15 14:37:11

+0

請參閱我的更新以瞭解處理方法。 – RedFilter 2010-04-15 14:50:24

+0

Thx這正是我想要的。你是我的救星。 – user301089 2010-04-15 15:00:07

0

或者您也可以

select distinct on (src,dst) 
     src,dst,date 
    from mytable 
order by src,dst,date desc; 
0

使用不同在8.4就可以也可做:

select src, dst, date 
from (select row_number() over(partition by src, dst order by date desc) as row, 
      src, dst, date 
     from t) x 
where x.row = 1 

這僅使用一個表掃描,也可以推廣到是能夠採取5項最新措施等

相關問題