在Scott用户中查询sql语句:“根据部门和工作岗位进行分组,显示最大的薪水合计数以及它们对应的部门及岗位”试一下,谢谢

解决方案 »

  1.   

    SELECT decode(GROUPING(dname), 1, '合计', dname) dname, job, SUM(maxsal)
      FROM (SELECT a.dname, b.job, maxsal
              FROM dept a, (SELECT t.deptno, job, MAX(sal) maxsal FROM emp t GROUP BY t.deptno, job) b
             WHERE a.deptno = b.deptno)
     GROUP BY ROLLUP((dname, job));
    --或者
    WITH b AS
     (SELECT t.deptno, job, MAX(sal) maxsal FROM emp t GROUP BY t.deptno, job)
    SELECT a.dname, b.job, maxsal
      FROM dept a, b
     WHERE a.deptno = b.deptno
    UNION ALL
    SELECT '合计', NULL, SUM(maxsal) FROM b;