当前位置: 首页 > 知识库问答 >
问题:

如何从语句中删除“not a GROUP BY expression”错误?

尚河
2023-03-14

该表的模式是:Emp(Empno、Ename、Job、Mgr、Hiredate、Sal、Comm、Deptno)

问题:

显示10部门或20部门员工的职务、部门号和平均工资,其工资高于2000,平均工资高于2500。

我的查询:

SELECT Job, Deptno, AVG(Sal) "AVGSALARY"
FROM Emp
WHERE Sal > 2000 AND Deptno IN(10, 20)
GROUP BY Job
HAVING AVG(Sal) > 2500;

错误:ORA-00979:不是GROUP BY表达式

我找不到我在这里所做的使这个错误出现的错误。我在groupby语句中使用的列名与我在SELECT语句中提到的列名相同。另外,我在HAVING语句中使用的聚合函数也出现在SELECT语句中。

我的问题是“如何从这个语句中删除这个错误?”。也欢迎任何性能改进查询。

共有1个答案

高胜
2023-03-14

您需要在GROUP BY语句中包括所有非聚合列。因此,将Deptno也包括在GROUP BY中:

SELECT Job, Deptno, AVG(Sal) "AVGSALARY"
FROM Emp
WHERE Sal > 2000 AND Deptno IN(10, 20)
GROUP BY Job, Deptno
HAVING AVG(Sal) > 2500;
 类似资料:
  • 我有一个简单的问题。 你能在testng中的依赖项中使用“或”语句吗? 例如,我有我的test1 这可能吗?

  • 如何注释我header.php中的标语? 我正在使用2014年的主题,并试图遵循WordPress codex中的元标签说明。要生成一个描述元标记,它会指示您将描述添加到标语中。但是这个标语显示在我打开网页的每个窗口/选项卡的顶部(以及我的网站名称)。要隐藏标语,WordPress建议“删除或注释掉标头区域的标签”我做这个有困难。我在header.php?中到底要评论什么,我在标题中没有看到任何带

  • 我试图在SonarQube 4.5.1上使用FxCop,但FxCopCmd失败了。 问题是,当SonarQube创建FxCopCmd调用时,他添加了参数 /aspnet.因为我的程序是一个Web项目,而不是一个网站,这个参数会导致4个分析引擎异常: C:\程序文件\Microsoft FxCOP 10.0 如果我在没有 /aspnet参数的情况下执行相同的调用,FxCopCmd运行良好: C:\程

  • 问题内容: 我正在尝试从表中删除行,但出现错误。 我在50时收到此错误: 您的SQL语法有误;检查与您的MySQL服务器版本相对应的手册以获取正确的语法,以在第1行的“ 50”附近使用 不知道怎么了 问题答案: 您不能在的子句中指定偏移量。 因此,唯一的方法是将查询重写为以下形式: 假设您有主键列 UPD :您需要实现双重嵌套来欺骗mysql,因为它不允许从当前修改的表中进行选择(感谢Martin

  • 从for, foreach, if..elseif...else, try...catch...finally, while...do, do...while中快速提取或删除代码 提取或删除代码的时候,被绿色选中的是要提取的内容,被红色选中的是要被删除的内容. 操作步骤: 菜单栏: Code —> Unwrap\/Remove 快捷键: Mac: command + shift + Delete

  • 问题内容: 在每行末尾添加\ n,结束程序正常工作,仅在最后一行工作… 请举个例子,我在任何解决方案中都尝试不了什么,而我发现这里不适合我。 问题答案: 您可以分割最后一个字符: 也许更好的方法是使用字符串库: