请教个查询SQL语句ID PRO_ID VALUE DATE_TIMER
1 1000 90 2009-4-1 12:00:00
2 1000 100 2009-4-2 12:00:006 1003 90 2009-4-1 12:00:00
7 1003 91 2009-4-2 12:00:00
8 1003 100 2009-4-3 12:00:00
想要显示如下结果:2 1000 100 2009-4-2 12:00:00
8 1003 100 2009-4-3 12:00:00以PRO_ID为主,取出DATE_TIMER最大值的数据
解决方案 »
- 请教Oracle排序问题
- 关于视图和它的基表的关系。
- 有关存储过程的问题!!!
- 帮忙看下这个存储过程是否有错?(很简单的)
- (急)初学者问题oracle8i的初始账户和密码是什么?
- 谁能帮我看看这几句语句是什么意思?
- 在oracle客户端中如何使用exp80命令导出oracle服务器中的备份?
- 安装好8i的客户端后,为什么没有Enterprise Manager--Configuration Assistant?
- 怎样把*.dmp文件转换成access格式文件?
- 高分相赠!!!!!!!!!!!如何全文检索BLOB字段(不是CLOB),以及如何在SQLPLUS上把结果显示出来!
- OracleDBConsoleorcl 无法启动?
- 请问如何删除表的重复记录
我看楼主需要样例数据,感觉是以id为主,不是以pro_id为主,所以group by是以id来查询的:1, select distictc(pro_id),value, date_timer from tb order by pro_idasc , date_timer desc 2, select pro_id,max(value),max(date_timer) from table group by pro_id
看错了,是以pro_id为主。
select ID,PRO_ID, VALUE, DATE_TIMER from
(
select ID,PRO_ID, VALUE, DATE_TIMER ,row_number() over(PARTITION BY PRO_ID order by PRO_ID, DATE_TIMER desc) as rn
from table1
order by PRO_ID, DATE_TIMER
)
where rn=1
---------- ---------- ---------- --------------
1 1000 90 01-4月 -09
2 1000 100 02-4月 -09
6 1003 90 01-4月 -09
7 1003 91 02-4月 -09
8 1003 100 03-4月 -09已用时间: 00: 00: 00.03
system@ORCL(192.168.21.110)> select id,pro_id,value,date_timer
2 from
3 (
4 select id,pro_id,value,date_timer,
5 row_number() over(partition by pro_id order by value desc) recno from test_t
6 )
7 where recno=1; ID PRO_ID VALUE DATE_TIMER
---------- ---------- ---------- --------------
2 1000 100 02-4月 -09
8 1003 100 03-4月 -09已用时间: 00: 00: 00.03
FROM TABLE A,
(SELECT A.PRO_ID, MAX(A.DATE_TIMER) DATE_TIMER
FROM TABLE A
GROUP BY A.PRO_ID) B
WHERE A.PRO_ID = B.PRO_ID
AND A.DATE_TIMER = B.DATE_TIMER
select * from tb t1 where
t1.PRO_ID = (select PRO_ID from tb t2 where t1.PRO_ID=t2.PRO_ID group by PRO_ID)
and
t1.DATE_TIMER=(select max(DATE_TIMER) from tb t3 where t1.PRO_ID=t3.PRO_ID group by PRO_ID)