我没有找到sql请求

时间:2010-04-15 14:22:30

标签: sql postgresql group-by request distinct

这是我的问题我列出了以下措施:

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

3 个答案:

答案 0 :(得分: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

答案 1 :(得分:0)

或者你可以在

上使用distinct
select distinct on (src,dst) 
       src,dst,date
  from mytable
 order by src,dst,date desc;

答案 2 :(得分: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种措施等。