首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在oracle 11g上出现ORA-00979的原因是什么

在oracle 11g上出现ORA-00979的原因是什么
EN

Stack Overflow用户
提问于 2019-09-26 12:17:56
回答 2查看 61关注 0票数 1

试着理解GROUP BY在SQL中的用法

我已经多次遇到这个错误,并且我无法确定内核,以便在以后的时间内解决它

代码语言:javascript
运行
复制
SELECT d.department_name
FROM departments d
JOIN employees e
ON (d.department_id = e.department_id)
GROUP BY d.department_name
HAVING (SELECT COUNT(*) FROM employees) > 5
AND e.commission_pct IS NOT NULL;
代码语言:javascript
运行
复制
ORA-00979: not a GROUP BY expression
00979. 00000 -  "not a GROUP BY expression"
*Cause:    
*Action:
Error at Line: 7 Column: 5
EN

Stack Overflow用户

发布于 2019-09-26 13:35:33

拥有按其分组的列是它的构建方式。因此,拥有允许您聚合或操作group by的列。获得group by错误的原因是使用了子查询,而不是group by或aggregate列。

简而言之,having类似于where,但having允许您过滤组中的记录,而不是where用于过滤整个表本身的记录

代码语言:javascript
运行
复制
    SELECT d.department_name
   FROM departments d
    JOIN employees e
    ON (d.department_id = 
      e.department_id)
     Where
      e.commission_pct IS NOT NULL
   GROUP BY d.department_name
    HAVING  COUNT(*) > 5
   ;
票数 2
EN
查看全部 2 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58109497

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档