表T
id(为数值类型,以1递增插入作为主键的)
name
orderId假设有如下这些记录:
1,A,101
2,B,101
3,C,101
4,A,102
5,B,102
6,A,103
7,B,103
8,C,103
9,D,103现在我要查出这个表里orderId相关的最后一条记录,执行查询语句,因得到如下结果:
3,C,101
5,B,102
9,D,103要求,每个orderId显示一条记录,且这条记录是显示id最大的那条请问这条语句怎么写????????(ORACLE数据库)
id(为数值类型,以1递增插入作为主键的)
name
orderId假设有如下这些记录:
1,A,101
2,B,101
3,C,101
4,A,102
5,B,102
6,A,103
7,B,103
8,C,103
9,D,103现在我要查出这个表里orderId相关的最后一条记录,执行查询语句,因得到如下结果:
3,C,101
5,B,102
9,D,103要求,每个orderId显示一条记录,且这条记录是显示id最大的那条请问这条语句怎么写????????(ORACLE数据库)
解决方案 »
- oracle安装的问题
- dbconsole 启动不了
- 如何将EMP表中的数据复制到RET_EMP中?
- 急急急...怎么创建Oracle全文索引?着急请各位大侠帮忙!
- 有表T_USER_TYPE,现在统计下用户a下面有多少存储过程里面用到了T_USER_TYPE表,如何搞?
- Oracle计算员工的出勤天数、月工资!
- 建立了job,运行又出问题了,真是一波三折啊。
- oracle在客户端的运行的问题
- oracle9i安装以后需要什么配置吗?谢谢~
- oracle9.2.0.1中blob数据操作问题
- plsql中,在测试窗口中,如何测试窗口中进行调试,变量的值如何输入
- win7 64位,安装oracle后应该启动哪些服务?
select ha2.hproci_,ha2.activity_name_ from JBPM4_HIST_ACTINST ha2 where dbid_ in( select max(ha.dbid_) from JBPM4_HIST_ACTINST ha where ha.activity_name_!='L' group by ha.hproci_ ) and ha2.hproci_='2660211'
select max(T1) from t group by T3))
from(
select id,name,orderId,row_number()over(partition by orderId order by name desc) rn
from t)
where rn=1
(select 1 id,'A' name,101 orderid from dual
union all
select 2 id,'B' name ,101 orderid from dual
union all
select 3 id,'C' name,101 orderid from dual
union all
select 4 id,'A' name,102 orderid from dual
union all
select 5 id,'B' name,102 orderid from dual
union all
select 6 id,'A' name,103 orderid from dual
union all
select 7 id,'B' name,103 orderid from dual
union all
select 8 id,'C' name,103 orderid from dual
union all
select 9 id,'D' name,103 orderid from dual)
select min(t.rowid) from t;
create table t as select 1 id,'A' name,101 orderid from dual
union all
select 2 id,'B' name ,101 orderid from dual
union all
select 3 id,'C' name,101 orderid from dual
union all
select 4 id,'A' name,102 orderid from dual
union all
select 5 id,'B' name,102 orderid from dual
union all
select 6 id,'A' name,103 orderid from dual
union all
select 7 id,'B' name,103 orderid from dual
union all
select 8 id,'C' name,103 orderid from dual
union all
select 9 id,'D' name,103 orderid from dual;select *
from (select t.*, last_value(id) over(partition by orderid) rn
from t
order by id) a
where a.rn = a.id;