在group by 语句中使用max()函数求它最大值,我还要取出对应于最大值的那一条数据的其它某一字段,如何实现?谢谢了.
解决方案 »
- 新建oracle数据库
- delete from testa.sample ,执行后,咱么把其他表里的记录也删除了?
- 求MFC中Oracle中的链接、查询语句以及需要包含的头文件名
- 字段数量和查询效率的关系?
- 编码问题
- pl/sql中读入一个文本文件到一个UTL_FILE.FILE_TYPE变量中,如何对该变量中的数据进行遍历?
- 控制文件,数据文件等等都放在什么路径里啊?
- 请问这条SQL语句有没有更好的写法
- ■■谁能回答谁就是高手!请问select table_name from user_tables;可以查看当前用户的表类似user_tables这样的表还有哪些?????
- 再问jlandzpa(欧高黎嘉陈) 老兄?
- 一个Asp.net 网站,oracle 数据库装在服务器上,在局域网里的另一台电脑要连这个数据库,连接字符串中的用户名和密码应该写什么的用户名和密码呀??
- 请教一个SQL语句
create table temp_2
(
drill_id varchar2(20) primary key,
dept_id varchar2(30),
footage number(6,2)
);
insert into temp_2(drill_id,dept_id,footage) values('1','a','1000');
insert into temp_2(drill_id,dept_id,footage) values('2','a','2000');
insert into temp_2(drill_id,dept_id,footage) values('3','a','2000');
insert into temp_2(drill_id,dept_id,footage) values('4','b','1000');commit;如果要查询以下以下情况
select max(footage),
--第二个查询字段为最大的值对应的drill_id
from temp_2 group by dept_id;
该如何实现了
2 WHERE footage=(SELECT MAX(footage) FROM temp_2);DRILL_ID DEPT_ID FOOTAGE
-------------------- ------------------------------ --------
2 a 2000.00
3 a 2000.00
SQL> select * from temp_2;
DRILL_ID DEPT_ID FOOTAGE
-------------------- ------------------------------ --------
1 a 1000.00
2 a 2000.00
3 a 2000.00
4 b 1000.00
SQL>
SQL> select drill_id,dept_id,footage
2 from
3 (
4 select a.*,rank() over(partition by dept_id order by footage desc) rn
5 from temp_2 a
6 )
7 where rn=1
8 ;
DRILL_ID DEPT_ID FOOTAGE
-------------------- ------------------------------ --------
2 a 2000.00
3 a 2000.00
4 b 1000.00根据DEPT_ID分组,对于a,FOOTAGE最大值有2个
from
(
select a.*,row_number() over(partition by dept_id order by footage desc) rn
from temp_2 a
)
where rn=1