有一个用户表TUser
字段name 分数point
zhang 80
wang 82
liu 39
sui 90
hardy 100部门表TDept
用户名uName 部门名称deptName
zhang 开发部
wang 开发部
liu 技术部
sui 市场部
hardy 研发部用一句sql,查询出部门平均分数最高的部门的名称。
字段name 分数point
zhang 80
wang 82
liu 39
sui 90
hardy 100部门表TDept
用户名uName 部门名称deptName
zhang 开发部
wang 开发部
liu 技术部
sui 市场部
hardy 研发部用一句sql,查询出部门平均分数最高的部门的名称。
create table tdept(uname varchar2(10),deptname varchar2(10));
insert into tuser values('zhang',80);
insert into tuser values('wang',82);
insert into tuser values('liu',39);
insert into tuser values('sui',90);
insert into tuser values('hardy',100);
insert into tdept values('zhang','开发部');
insert into tdept values('wang','开发部');
insert into tdept values('liu','技术部');
insert into tdept values('sui','市场部');
insert into tdept values('hardy','研发部');
commit;
select deptname, ag
from (select deptname,
avg(point) over(partition by deptname order by point) ag
from (select u.name, u.point, d.deptname
from tuser u, tdept d
where u.name = d.uname)
order by ag desc)
where rownum = 1;
或者1楼兄弟的也可以
我用的是mysql测试的。。稍微改了下
select s.sdeptname from (select d.deptname sdeptname,avg(a.point1) from tdept d,tuser a where a.name=d.uname group by d.deptname order by avg(a.point1) desc)s limit 0,1;