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;

 

 

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