select * from Table_a where fd1>23 order by desc
解决方案 »
- 企业管理器显示关闭?
- oracle存储过程包与包主体实例,求助。。。。
- oracle报错 ORA-00933: SQL command not properly ended
- 结果集返回问题
- 表最重要的特征是什么?以及表、数据库、约束的定义
- (高分请教)通过存储过程procedure怎么获取一个表的所有记录
- 高人请指点,这个结果SYS_LOB0000031469C00016$$是什么东西,如何才能释放该空间。急!!!!!
- 高手请进!!!!!关于ORACLE中的sql语句包含NOT EXISTS的问题
- 大家来看看这个SQL语句.
- 问个SQL
- 在Oracle在有没有那个系统表时时记录了各个表的现有记录(行)数.
- 如何让oracle在每月的15号12点 执行一段存储过程? 是不是用jobs可以,如何写? 网上哪里有这方面资料?
我就是想要fd1,fd2,fd3 可是group by 里只按fd1,fd2就好了.fd3 只取max(fd1)那条.select max(a.fd1) as fd1,a.fd2,(select top 1 b.fd3 from table_A b where b.fd1=a.fd1 order by b.fd1 desc) as fd3
from Table_A a
group by fd1,fd2,fd3这样似乎可以..
select a.fd1,a.fd2,b.fd3 from
(
select max(fd1) as fd1,max(rowid) as rowid,fd2,fd3
from Table_A
group by fd1,fd2
) a,
(
select rowid,fd1,fd2,fd3
from Table_A
) b
where a.rowid = b.rowid
这样可以获取到楼主给出的数据集中的要求的结果,但是如果在表中fd1和fd2确定的一行中fd3的值不确定,那么将出现随机选定rowid最大的一行的问题:
如表中数据为
Table_A
fd1 , fd2, fd3 rowid
23 k jjj ...
89 u lll ...
29 k uuu AAAFEE
89 u lll ...
29 k uuu ...
29 k iii AAAFEF
则结果为fd1 , fd2, fd3
89 u lll
29 k iii所以,这涉及你的执行策略和数据的完整性问题,考虑好数据之间的关系和约束再考虑怎么做
from Table_A
where (fd1 ,fd2) in
(select max(fd1),fd2
from Table_A
group by fd2)