zhang633 发表于 2015-11-19 11:20:27

AVG 函数下的分组查询

SQL> desc emp;
Name                                    Null?    Type
----------------------------------------- -------- ------------

EMPNO                                     NOT NULL NUMBER(4)
ENAME                                              VARCHAR2(10)
JOB                                                VARCHAR2(9)
MGR                                                NUMBER(4)
HIREDATE                                           DATE
SAL                                                NUMBER(7,2)
COMM                                             NUMBER(7,2)
DEPTNO                                             NUMBER(2)

SQL> desc dept;
Name                                    Null?    Type
----------------------------------------- -------- ------------

DEPTNO                                    NOT NULL NUMBER(2)
DNAME                                              VARCHAR2(14)
LOC                                                VARCHAR2(13)

求不同部门的平均工资,部门编号,部门名称。

SQL> select d.dname,e.deptno,e.avg(sal) from emp e,dept d where e.deptno=d.deptn
o group by e.deptno;
ERROR at line 1:
ORA-00904: "E"."AVG": invalid identifier


哪错了?

zhang633 发表于 2015-11-19 11:44:17

换个了写法还是不行啊
select d.dname,e.deptno,avg(e.sal) from emp e, dept d where e.deptno=d.deptno group by e.deptno;
ORA-00979: not a GROUP BY expression

Tyler_Durden 发表于 2015-11-24 11:14:31

本帖最后由 Tyler_Durden 于 2015-11-24 11:21 编辑

http://blog.csdn.net/basenet855x/article/details/6694150
根据这篇博文,group by后应跟所有没有使用内部函数的列,即应写成group by d.dname,e.deptno;
在自己客户端亲测可以实现。本人亦是菜鸟,仅供楼主参考
页: [1]
查看完整版本: AVG 函数下的分组查询