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 数据更新问题 跪求各位高手解决!!!!!!在线等
- 请教一下flush SGA的问题?
- 表中的记录删除后重新插入,rowid有没有可能和以前的有冲突?
- oracle sql语句 显示树形结构
- oracle中动态执行sql语句时,什么时候用绑定变量
- 如何列出所有作业
- 在ORACLE8中创建视图,出现错误提示:ORA-00904,无效列名,检查了表里的字段名称,没错,原因何在?在线等,着急!
- date类型如何求和?
- 菜鸟问题!如何把一个库里面的所有表和数据导出,到另外一台机器上,类似于复制的功能!在线等,解决马上给分
- 求助!在用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