注册 登录
编程论坛 Oracle论坛

求高手指点一句SQL

南川 发布于 2011-09-12 20:58, 867 次点击
我现在有一张表,包括id,date,value

例如:
id date      value
1  20110912  30
2  20110912  20
1  20110911  50
3  20110911  10
4  20110910  60

我要取的数据是每个id的最新一条记录,结果即为
id date      value
1 20110912  30
2 20110912  20
3 20110911  10
4 20110910  60

这条SQL怎么写呀?谢谢!
2 回复
#2
zwk1990242011-09-15 16:53
select  表.*  from 表,(select max(date) maxdate,id from 表 group by id) a where a.maxdate = 表.date and a.id = 表.id;
#3
muyiyuwen2011-09-23 09:38
select id,date,value
from(  select table.*,row_number() over(partition by id order by date desc) cc from table
) t where t.cc=1
row_number() over() 函数就能实现这个功能。
1