有一张表,字段和记录如下:
SID TID NAME DEPT STEP TIME
1 253 ABC MIS 5 10:20
2 253 ABC MIS 6 10:22
3 254 STD PE 5 11:20
3 254 STD PE 6 11:30现在需要SELECT出253和254最后时间(TIME)的纪录,请问如何写SQL?
解决方案 »
- 急..谁能帮我写个创建Oracle job的详细过程
- 如何调用oracle存储过程将一个表写入其他表
- 做一个简单的查询
- 求助!!!如何用第三方客户端远程访问unix系统下的oracle7数据库!!!
- 求救pl/sql 游标 数据缓冲区太小异常
- 帮写一个sql语句
- 紧急求救:ORACLE数据库恢复...............
- 从www.oracle.com下载的oracle9是不是零售版?
- 根据部门分组,求出每个部门里面工资高于2000的百分比
- 求指导PLSQL截取字段第二个或者第二个和第三个字符怎么写?
- 求转换工具:根据存储过程可以自动生成可调用的java类,通过这个类就可以调那个存储过程?
- 为什么按主键列搜索反而不会用到索引????
2 sid number,
3 tid number,
4 name varchar2(20),
5 dept varchar2(30),
6 step number,
7 ttime varchar2(20)
8 );Table createdExecuted in 1.391 secondsSQL> insert into t select 1,253,'ABC','MIS',5,'10:20' FROM DUAL
2 UNION ALL SELECT 2,253,'ABC','MIS',6,'10:22' FROM DUAL
3 UNION ALL SELECT 3,254,'STD','PE',5,'10:22' FROM DUAL
4 UNION ALL SELECT 4,254,'STD','PE',6,'10:30' FROM DUAL;4 rows insertedExecuted in 0.297 secondsSQL> SELECT * FROM T; SID TID NAME DEPT STEP TTIME
---------- ---------- -------------------- ------------------------------ ---------- --------------------
1 253 ABC MIS 5 10:20
2 253 ABC MIS 6 10:22
3 254 STD PE 5 10:22
4 254 STD PE 6 10:30Executed in 0.187 secondsSQL> SELECT SID,TID,NAME,DEPT,STEP,TTIME FROM (
2 SELECT SID,TID,NAME,DEPT,STEP,TTIME,ROW_NUMBER()OVER(PARTITION BY TID ORDER BY TTIME DESC) RM
3 FROM T
4 ) A WHERE A.RM = 1; SID TID NAME DEPT STEP TTIME
---------- ---------- -------------------- ------------------------------ ---------- --------------------
2 253 ABC MIS 6 10:22
4 254 STD PE 6 10:30Executed in 0.172 seconds