这是我的问题我列出了以下措施:
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 :(得分: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)
或者你可以在
上使用distinctselect 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种措施等。