emp表应该还包括did吧,每个人应该有部门ID的啊如果部门名称在dept表的,假设dept_name,EMP中有DIDselect d.dept_name,count(*) 人数,avg(salary )平均工资 from emp e,dept d where e.did=d.did 第二个,则再多关联job表,然后按job分组第三个估计dept表中,没有经理的,manager_id就是空的关键你的表信息不全,也没有测试数据,叫人家怎么写给你啊 其实应该算简单的SQL 无非就是COUNT,AVG,只不过是多表关联加分组第三个估计也就是is null的查询不过没有数据,就不会有具体的SQl,只能说个思路
1, select empname(部门名字列),count(*) ,avg(emp_salary) from emp group by empid(部门id)。 2,select empname(部门名字列), emptype(工种) ,avg(emp_salary)from emp group by empid(部门id),emptype(工种)。 3,这个,不太清楚,楼主的信息太少了。
1.部门人数:count(*)from emp group by deptid; 平均工资用 avg(salary) 2.group by后面加条件 3.可能是用exists来查managerid那个字段是否存在
dept表只有几个字段 did name manager_id 等 我才是用 where manager_id is NOT NULL ??
各部门人数和平均工资 select d.did, count(*), avg(salary) from emp e, dept d emp where e.did = d.did group by d.did;不同部门不同工种的平均工资 select did, title, avg(salary) from emp group by did, title;
第一个最简单,按部门分组求count,avg
第二个是不是写错了
主要用到就是count() avg()的函数应用!
emp包括salary eid
dept包括did manager_id
job指的就是部门中的各个工种 第二个没错呀那个面试题给的是一个ER图 job-dept-emp 相互关联各位把这三个语句写清楚些呀 我菜呀~~~~~
from emp e,dept d
where e.did=d.did
第二个,则再多关联job表,然后按job分组第三个估计dept表中,没有经理的,manager_id就是空的关键你的表信息不全,也没有测试数据,叫人家怎么写给你啊
其实应该算简单的SQL
无非就是COUNT,AVG,只不过是多表关联加分组第三个估计也就是is null的查询不过没有数据,就不会有具体的SQl,只能说个思路
如果你想往ORACLE发展,自然是装个ORACLE好喽
像COUNT
AVG什么的都是标准SQL
用了hibernate 多表关联加分组 都忘了...........
1, select empname(部门名字列),count(*) ,avg(emp_salary) from emp group by empid(部门id)。
2,select empname(部门名字列), emptype(工种) ,avg(emp_salary)from emp group by empid(部门id),emptype(工种)。
3,这个,不太清楚,楼主的信息太少了。
平均工资用 avg(salary)
2.group by后面加条件
3.可能是用exists来查managerid那个字段是否存在
我才是用 where manager_id is NOT NULL ??
select d.did, count(*), avg(salary) from emp e, dept d emp
where e.did = d.did
group by d.did;不同部门不同工种的平均工资
select did, title, avg(salary)
from emp
group by did, title;