SQL进阶查询

查出至少有一个员工的部门。显示部门编号、部门名称、部门位置、部门人数。

SELECT
  d.*,
  z.cou
FROM dept d,
  (SELECT
     depno,
     COUNT(*)    cou
   FROM emp
   GROUP BY depno) z
WHERE d.deptno = z.depno;

列出薪金比关羽高的所有员工。

列出所有员工的姓名及其直接上级的姓名。

SELECT
  e.ename,
  m.ename
FROM emp e
  LEFT OUTER JOIN emp m
    ON e.mgr = m.empno;

列出受雇日期早于直接上级的所有员工的编号、姓名、部门名称。

SELECT
  e.empno,
  e.ename,
  d.dname
FROM emp e,
  emp m,
  dept d
WHERE e.mgr = m.empno
    AND e.hiredate < m.hiredate
    AND e.deptno = d.deptno;

列出部门名称和这些部门的员工信息,同时列出那些没有员工的部门。

SELECT *
FROM emp e
  RIGHT OUTER JOIN dept d
    ON d.deptno = e.deptno;

列出所有文员的姓名及其部门名称,部门的人数。

列出最低薪金大于15000的各种工作及从事此工作的员工人数。

SELECT
  job,
  COUNT(*)
FROM emp e
GROUP BY job MIN(sal) > 15000;

列出在销售部工作的员工的姓名,假定不知道销售部的部门编号。

SELECT *
FROM emp e
WHERE e.deptno = (SELECT
                    deptno
                  FROM dept
                  WHERE dname = '销售部');

列出薪金高于公司平均薪金的所有员工信息,所在部门名称,上级领导, 工资等级。

SELECT
  e.*,
  d.dname,
  m.ename,
  s.grade
FROM emp e
  LEFT OUTER JOIN dept d
    ON e.deptno = d.deptno
  LEFT OUTER JOIN emp m
    ON e.mgr = m.empno
  LEFT OUTER JOIN salgrade s
    ON e.sal BETWEEN s.losal
      AND s.hisal
WHERE e.sal > (SELECT
                 AVG(sal)
               FROM emp);

列出与庞统从事相同工作的所有员工及部门名称。

SELECT
  e.*,
  d.name
FROM emp e,
  dept d
WHERE e.depno = d.deptno
    AND job = (SELECT
                 job
               FROM emp
               WHERE ename = '庞统');

列出薪金高于在部门30工作的所有员工的薪金的员工姓名和薪金、部门名称。

SELECT
  e.name,
  e.sal,
  d.dname
FROM emp e,
  dept d
WHERE e.deptno = d.deptno
    AND sal > ALL(SELECT
                    sal
                  FROM emp
                  WHERE deptno = 30);

列出每个部门的员工数量、平均工资。查出年份、利润、年度增长比

SELECT
  y1.*,
  CONCAT((y1.zz-y2.zz)/y2.zz*100,'%') 增长比
FROM years y1 LEFT OUTER JOIN
  years y2
  ON y1.yy=y2.yy+1;

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章