select * from table_name where rowid in
(select rowid from (select a1,max(a2) from table_name group by a1))
(select rowid from (select a1,max(a2) from table_name group by a1))
解决方案 »
- Oracle补充日志(supplemental log)如何启动,停止,如何查看其启用状态?
- 【50分】统计下这边大虾们单位业务数据库搭建的操作系统平台类型
- 同样的SQL语句在两个数据库上执行,执行计划差别很大,怎么回事?
- 这2个sql条件一样,语句为什么结果不一样呢
- FROM keyword not found where expected错误
- Oracle高手请进,300分!一个oracle9i回退段的问题.
- 请推荐一套数据库oracle9i的书
- 在oracle里怎么去掉回车苻。
- 在Oracle SQL *Plus 利用“Create type”创建新的数据类型不执行。
- Oracle Change Notification求助
- 求助!在用SQL语句查询oracle表时遇到的一个问题,急!
- 请教:ORACLE里有没有像MS SQL里的标识类型(急用,在线等待)
FROM
TABLE_NAME T1,
(SELECT ROWID,A1,MAX(A2) FROM TABLE_NAME GROUP BY ROWID,A1) T2
WHERE T1.ROWID=T2.ROWID
select * from table_name where (a1,a2) in
(select a1,max(a2) from table_name group by a1);
你写SQL文根本运行不了,提示分组查询结果集中没有rowid字段
liuchangxing(小红星):
你写的SQL文可以运行,但是查旬的数据比想要的结果多出了几条
我就是想取得按a1分组,a2最大的那条数,如果a2最大的有多条的情况下,可以任取其中一条,但是a3,a4必须是那相对应的对录的数据,不能取到别的记录的数据比如:
a1 a2 a3 a4
1条 1,2,30,60
2条 1, 2, 40,70
3条 1, 1, 50,80
要得到的结果可以是第一条,或者是第二条,但只能是 1,2,30,60 或者 1,2,40,70 但不能是
1,2,40,60,或者是1,2,30,70和第三条。
select rowid,bdsszd from BADWDJ a where a.rowid = (select max(rowid) from BADWDJ b where a.bdsszd =b.bdsszd)
(select max(rowid) from table_name where (a1,a2) in (select a1,max(a2) from table_name group by a1) group by a1)
select * from table_name T where group by a1 having (count(a1)>1 and a2=select max(a2) from table_name ) and rowid=select max(rowid) from table_name group by a1 having count(a1)>1