--没有考虑性能
select a,b,c,d,e from tablename
where (a,b,c) in (
select a,b,c,max(d),max(e) tablename group by a,b,c);
select a,b,c,d,e from tablename
where (a,b,c) in (
select a,b,c,max(d),max(e) tablename group by a,b,c);
解决方案 »
- Oracle中字段为空的一个新问题
- 用PL/SQL导出数据的问题
- ORACLE數據庫中表已經存在且有記錄﹐我要修改結構(通過SQL語句)...
- 在Oracle中使用集合,然后赋值到select中报错
- 关于集合类型的一个问题!求教
- OraOLEDB.Oracle.1无法连接的问题?
- 如何更改一个有内容的表所在的表空间?
- 高分求教:CLOB 和 long 类型选择问题
- 使用sql worksheet时出错,提示“ORA-12560:TNS:协议适配器错误”?(在线给分)
- TNS问题如何在2000SERVER中配置TNS服务!laurels_x(杰瑞) 在吗请帮着看一下!
- oracle中有关日期型的问题,在线等。
- 请问管理员SYSMAN的权限怎么会不够?
where (a,b,c,d,e) in (
select a,b,c,max(d),max(e) from tablename group by a,b,c);
select a,b,c,count(d)+count(e) from tablename group by a,b,c;
select a,b,c,max(d),max(e) from tablename group by a,b,c
不对呀,这样求出来的D E是取的最大值,但他们不一定是同一条记录的值。
没测试,你自己测一下吧。
where rowid in (select x.riw from
(select a,b,c,max(rowid) riw from tablename group by a,b,c) x
);
where rowid in (select x.riw from
(select a,b,c,max(rowid) riw from tablename group by a,b,c) x
);
贴主:
不对呀,这样求出来的D E是取的最大值,但他们不一定是同一条记录的值。我认为:
jlandzpa是对的,首先,你要达到的目的是什么?是a,b,c不重复,其次是d,e随便取一条。这样的话,group by a,b,c保证不重复,而在a,b,c重复(注意!!)的记录中任取一条(那么取成最大值也无所谓了)。可以达到你的目的就行了啊。
抱歉,是我没有说清楚,所以造成理解上的偏差。我的确实要d e为同一条记录。
非常感谢各位的帮助。