`
爱上边城
  • 浏览: 6179 次
  • 性别: Icon_minigender_1
  • 来自: 南京
最近访客 更多访客>>
社区版块
存档分类
最新评论

ORA-00979 不是group by 表达式

 
阅读更多
ORA-00979 不是group by 表达式。
当一个SQL语句中含有聚合函数时,(比如:count(),sum(),avg()等等)
并且SELECT 后面又有不是聚合函数的字段,
就必须要GROUP BY 不是聚合函的所有字段,
比如你的SQL语句应该写成:

select   b.id0000,b.xming0,sum(salary)
from Employee a,Salary b
where a.id0000=b.id0000
group by b.id0000,b.xming0

这样就不会错啦
在聚合函数中用group by来分组数据时,特别说明:select 列表项中不存在的列可以出现在group by的列表项中,但反过来就不行了,在select列表项中出现的列必须全部出现在group by后面(聚合函数除外).

分享到:
评论

相关推荐

    Oracle 错误集选

    ### ORA-01791: 不是SELECTed表达式 如果在查询中使用了未在SELECT列表中出现的表达式,将遇到此错误。确保所有使用的表达式都出现在SELECT列表中。 ### ORA-01792: 表或视图中的最大列数为1000 表或视图中的列数...

    oracle错误报告.docx

    GROUP BY或ORDER BY子句中超过1000个表达式。减少表达式数量以符合限制。 8. ORA-00964: 表不在FROM列表中。确保在选择列表中引用的所有表都在FROM子句中定义。 9. ORA-00965: 不允许'*'作为列别名。在SQL语句中...

    oracle脚本 常用的数据库sql及pl\sql语言

    1. 分组和聚合函数:GROUP BY用于分组数据,聚合函数如COUNT(), SUM(), AVG()等用于计算每个组的统计信息。 2. 联接操作:JOIN用于合并来自两个或更多表的数据,如INNER JOIN、LEFT JOIN、RIGHT JOIN和FULL OUTER ...

    Oracle 错误代码整理总结

    使用了GROUP BY但未包含所有非聚合列,或在HAVING子句中使用了非分组函数。 15. ORA-00942:表或视图不存在 引用的表或视图在数据库中找不到,检查表名和权限。 16. ORA-00947:没有足够的值(一般是插入语句出现...

    wmsys.wm_concat详细示例.txt

    SELECT id, wmsys.wm_concat(name) AS name FROM idtable GROUP BY id; ``` 这段代码的结果将返回每个`id`对应的`name`列值的汇总字符串,如`10`对应的`name`列值为`'ab,bc,cd'`,而`20`对应的`name`列值为`'hi,ij,...

    oracle_sql使用.docx

    你必须将`column1`添加到GROUP BY子句中,因为`column1`不是组函数的一部分: ```sql SELECT column1, MAX(column2) FROM table WHERE condition GROUP BY column1; ``` 在使用CASE WHEN进行行列转换时,如果不加...

    oracle伪列以与伪表.doc

    - 方法1:通过`GROUP BY`和`HAVING`子句找出出现多次的ID。 - 方法2:利用`MIN(ROWID)`或`MAX(ROWID)`排除每个组中已存在的ROWID。 - 删除重复记录: - 对于大量重复记录,可以先找出具有多个实例的ID,然后...

    Oracle创建视图(View)

    2.在视图包含GROUP 函数,GROUP BY子句,DISTINCT关键字时不能删除数据行; 3.在视图不出现下列情况时可通过视图修改基表数据或插入数据: a.视图中包含GROUP 函数,GROUP BY子句,DISTINCT关键字; b.使用...

    Oracle数据库学习日记-实用性最强的Oracle学习总结.docx

    ##### 6.2 Groupby 和 having 子句 - 使用 `HAVING` 子句可以在分组后进一步筛选数据。 - 示例:`SELECT DEPARTMENT, COUNT(*) AS EMP_COUNT FROM MY_TABLE GROUP BY DEPARTMENT HAVING COUNT(*) > 5;` ##### 6.3...

    Oracle字段转字符串/多行记录合并/连接/聚合字符串的几种方法

    SELECT column1, LISTAGG(column2, ', ') WITHIN GROUP (ORDER BY column2) FROM table_name GROUP BY column1; ``` 这将根据`column1`的值对记录进行分组,并用逗号和空格连接每个组内的`column2`。 4. **...

    Oracle从入门到精通

    - `SELECT column_name, COUNT(*) FROM table_name GROUP BY column_name HAVING COUNT(*) > 10;` ##### 7.5 GROUPING函数 - **GROUPING**:用于分组查询中的特殊功能。 #### 八、高级子查询 ##### 8.1 成对子...

    oracle入门经典

    - **GROUP BY**: 对结果集按照一个或多个列进行分组。 **1.19 子查询** - **简单子查询**: 在一个查询中嵌套另一个查询。 - **相关子查询**: 外层查询的每行都需要执行内层查询。 **1.20 替换变量** - **&**: ...

    Oracle SQL查考手册chm

    例如,SELECT Clause用于指定要选择的列,FROM Clause指定数据来源,WHERE Clause过滤结果,GROUP BY Clause用于分组,HAVING Clause在分组后进行过滤,ORDER BY Clause对结果进行排序。 Oracle SQL的深入学习还...

    Oracle数据库学习日记

    - 示例: `select department, sum(salary) as total_salary from employees group by department having total_salary > 100000;` ##### 6.3 数据分组总结 - **分组总结**: 综合使用 `group by` 和 `having` 子句...

    oracle sql精华.docx

    SELECT SUM(quantity) FROM A GROUP BY TRUNC(created_date + (ADD_MONTHS(created_date, 1) - created_date - 20), 'MM'); ``` - **知识点解析:** - `ADD_MONTHS()` 函数:此函数用于获取给定日期之后的指定...

    Oracle SQL高级编程(资深Oracle专家力作,OakTable团队推荐)--随书源代码

    4.3.3 空值与GROUP BY和ORDER BY 112 4.3.4 空值与聚合函数 114 4.4 小结 114 第5章 关于问题 116 5.1 问出好的问题 116 5.2 提问的目的 117 5.3 问题的种类 117 5.4 关于问题的问题 119 5.5 关于数据的问题...

Global site tag (gtag.js) - Google Analytics