已知有两张表
部门表department:部门编号 dept_id 、部门名称 dept_name
员工表employee:员工编号 emp_id、员工姓名 emp_name、 部门编号 dept_id 、工资emp_wage
1)求各部门的平均工资
select d.dept_name ,round(avg(nvl(e.emp_wage,0)),2) sal from employee e left join department d on e.dept_id=d.dept_id group by d.dept_name;
2)求各部门的总工资
select d.dept_name ,sum(nvl(e.emp_wage,0)) sal from employee e left join department d on e.dept_id=d.dept_id group by d.dept_name;
3)求工资大于5000的员工所属的部门名称、员工id和员工工资
select d.dept_name,e.emp_id,e.emp_wage from department d ,employee e where e.emp_wage>5000 and d.dept_id = e.dept_id;
涉及函数解释:
sum为求平均值函数,将要求总和值的列sum(列名)
avg为求平均值函数,将要求平均值的列avg(列名)
nvl为如果未空则置空值为其他数据的函数,nvl(为空的列,将空值置成的其他值)
round为四舍五入函数,round(列名,保留小数位数)