查询每个部门每个岗位的工资总和
SELECT DEPTNO,job, SUM(SAL) from emp GROUP BY DEPTNO, JOB
SELECT job, DEPTNO, SUM(SAL) from emp GROUP BY JOB, DEPTNO
- 查询每个部门的部门编号,部门名称,部门人数,最高工资,最低工资,工资总和,平均工资。
select e.deptno,d.dname, count(*) ,max(e.sal),min(e.sal),sum(e.sal),avg(e.sal)
from emp e, dept d
where e.deptno=d.deptno
group by e.deptno, d.dname
- 查询每个部门,每个岗位的部门编号,部门名称,岗位名称,部门人数,最高工资,最低工资,工资总和,平均工资
select e.deptno,e.job,d.dname, count(*) ,max(e.sal),min(e.sal),sum(e.sal),avg(e.sal)
from emp e, dept d
where e.deptno=d.deptno
group by e.deptno,e.job,d.dname
ANSI sql
- ANSI sql 等值连接语法
select *
from emp e
JOIN dept d on e.DEPTNO = d.DEPTNO
格式是
select 列名
from 表名1 join 表名2 on 连接条件
等价于
select *
from emp e, dept d
where e.deptno=d.deptno
外部连接
- 左外连接: 以 from 后面的坐标为基表, 无路右面的表是否有这个字段都会显示出来
查询所有雇员姓名,部门编号,部门名称,包括没有部门的员工也要显示出来
SELECT e.ename, e.deptno, d.DNAME FROM emp e
LEFT OUTER JOIN dept d
on e.deptno = d.deptno
- 右外连接, 右边的表为基准表, 右边的都会显示出来
SELECT e.ename, e.deptno, d.DNAME FROM emp e
RIGHT OUTER JOIN dept d
on e.deptno = d.deptno
- 查询每个经理所管理的人数,经理编号,经理姓名,要求包括没有经理的人员信息。
select count(worker.empno),manager.empno, manager.ename
from emp worker
left outer join emp manager on manager.EMPNO = worker.MGR
group by manager.empno
网友评论