不是,把你的sql帖出来,大家分析一下。

解决方案 »

  1.   

    SQL> select ename,deptno from emp group by deptno,ename;ENAME          DEPTNO
    ---------- ----------
    JONES              20
    WARD               30
    SCOTT              20
    KING               10
    JAMES              30
    ALLEN              30
    MARTIN             30
    BLAKE              30
    FORD               20
    SMITH              20
    ADAMS              20ENAME          DEPTNO
    ---------- ----------
    MILLER             10
    CLARK              10
    TURNER             30已选择14行。
      

  2.   

    难道不是应该先把deptno一样的放在一起吗?
      

  3.   

    group by deptno,ename
    是按照这两个进行分组
    应该没有先后顺序的
    你想按照deptno分组
    可以直接group by deptno
      

  4.   

    SQL> select ename,deptno from emp group by deptno;
    select ename,deptno from emp group by deptno
           *
    第 1 行出现错误:
    ORA-00979: 不是 GROUP BY 表达式
    select里有哪一列,group by 里也必须有
      

  5.   

    select max(ename),deptno
    from emp
    group by deptno;
      

  6.   

    不是select里面有那一列,group by都要有,
    把没有的用聚集函数就ok
      

  7.   

    SQL> select max(ename),deptno
      2  from emp
      3  group by deptno;MAX(ENAME)     DEPTNO
    ---------- ----------
    WARD               30
    SMITH              20
    MILLER             10
      

  8.   

    select  empno,ename,job,sal  from  scott.emp  group  by
    job,empno,ename,sal having sal<=2000
    这条语句是oracle9i入门与提高电子版中的例子,书中的结果是先把所有job为clerk的员工列出来,之后再是salesman的。
    一下是10g的运行结果:
    SQL> select  empno,ename,job,sal  from  scott.emp  group  by
      2  job,empno,ename,sal having sal<=2000;     EMPNO ENAME      JOB              SAL
    ---------- ---------- --------- ----------
          7844 TURNER     SALESMAN        1500
          7654 MARTIN     SALESMAN        1250
          7369 SMITH      CLERK            800
          7499 ALLEN      SALESMAN        1600
          7876 ADAMS      CLERK           1100
          7934 MILLER     CLERK           1300
          7521 WARD       SALESMAN        1250
          7900 JAMES      CLERK            950已选择8行。
      

  9.   

    要使结果排序加orader by吧.
      

  10.   

    记得以前的group by也可以的,奇怪了
      

  11.   

    好象是楼主说的那样,9i好象用GROUP BY 就帮你排序了的。
    10G好象要自己手动写排序了。也只是听说而已!
      

  12.   

    group by deptno 才会按deptno分组列出记录group by deptno,ename 当然是按deptno,ename分组
      

  13.   

    应该是先按照deptno分组,组内再按照ename分组。如果是按照deptno,ename,应该是什么规则?