SELECT
  deptno, MAX(AVG(sal))
FROM
  emp
GROUP BY
  deptno;
上面这段SQL,不明白嵌套MAX就出错的原因。想请教一下原理。谢谢!
P.S.: 涉及的表和字段都是Oracle自带的。

解决方案 »

  1.   

    你想干什么,求最大的部门平均数?
    select max(avg_sal) max_avg_sal
    from(
    SELECT  deptno, AVG(sal) avg_sal
    FROM
      emp
    GROUP BY
      deptno);
      

  2.   

    在一层查询内, 分组函数不可嵌套.
    select max(sal_avg)
    from
    (
    SELECT
      deptno, AVG(sal) as sal_avg
    FROM
      emp
    GROUP BY
      deptno
    )
      

  3.   

    to Hebo2005:
      是的。查部门平均工资中的最大数。to bugchen888:
      谢谢。不过我想要结果带上deptno,加上了就会出错。是什么原因呢?
      

  4.   

    拿来2楼的改一下就行了
    select deptno, sal_avg
      from (SELECT deptno, AVG(sal) as sal_avg FROM emp GROUP BY deptno)
     where sal_avg =
           (select max(sal_avg)
              from (SELECT deptno, AVG(sal) as sal_avg FROM emp GROUP BY deptno))
      

  5.   

    select *
    from
    (
    SELECT
      deptno, AVG(sal) as sal_avg
    FROM
      emp
    GROUP BY
      deptno
    order by 2 desc
    )
    where rownum=1