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

写了  篇文章,拥有财富 ,被  人关注

转播转播 分享分享 分享淘帖
回复

使用道具

P4 | 发表于 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;
在自己客户端亲测可以实现。本人亦是菜鸟,仅供楼主参考
回复

使用道具

P4 | 发表于 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
回复

使用道具

您需要登录后才可以回帖 登录 | 加入社区

本版积分规则

意见
反馈