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后面(聚合函数除外).
分享到:
相关推荐
### ORA-01791: 不是SELECTed表达式 如果在查询中使用了未在SELECT列表中出现的表达式,将遇到此错误。确保所有使用的表达式都出现在SELECT列表中。 ### ORA-01792: 表或视图中的最大列数为1000 表或视图中的列数...
GROUP BY或ORDER BY子句中超过1000个表达式。减少表达式数量以符合限制。 8. ORA-00964: 表不在FROM列表中。确保在选择列表中引用的所有表都在FROM子句中定义。 9. ORA-00965: 不允许'*'作为列别名。在SQL语句中...
1. 分组和聚合函数:GROUP BY用于分组数据,聚合函数如COUNT(), SUM(), AVG()等用于计算每个组的统计信息。 2. 联接操作:JOIN用于合并来自两个或更多表的数据,如INNER JOIN、LEFT JOIN、RIGHT JOIN和FULL OUTER ...
使用了GROUP BY但未包含所有非聚合列,或在HAVING子句中使用了非分组函数。 15. ORA-00942:表或视图不存在 引用的表或视图在数据库中找不到,检查表名和权限。 16. ORA-00947:没有足够的值(一般是插入语句出现...
SELECT id, wmsys.wm_concat(name) AS name FROM idtable GROUP BY id; ``` 这段代码的结果将返回每个`id`对应的`name`列值的汇总字符串,如`10`对应的`name`列值为`'ab,bc,cd'`,而`20`对应的`name`列值为`'hi,ij,...
你必须将`column1`添加到GROUP BY子句中,因为`column1`不是组函数的一部分: ```sql SELECT column1, MAX(column2) FROM table WHERE condition GROUP BY column1; ``` 在使用CASE WHEN进行行列转换时,如果不加...
- 方法1:通过`GROUP BY`和`HAVING`子句找出出现多次的ID。 - 方法2:利用`MIN(ROWID)`或`MAX(ROWID)`排除每个组中已存在的ROWID。 - 删除重复记录: - 对于大量重复记录,可以先找出具有多个实例的ID,然后...
2.在视图包含GROUP 函数,GROUP BY子句,DISTINCT关键字时不能删除数据行; 3.在视图不出现下列情况时可通过视图修改基表数据或插入数据: a.视图中包含GROUP 函数,GROUP BY子句,DISTINCT关键字; b.使用...
##### 6.2 Groupby 和 having 子句 - 使用 `HAVING` 子句可以在分组后进一步筛选数据。 - 示例:`SELECT DEPARTMENT, COUNT(*) AS EMP_COUNT FROM MY_TABLE GROUP BY DEPARTMENT HAVING COUNT(*) > 5;` ##### 6.3...
SELECT column1, LISTAGG(column2, ', ') WITHIN GROUP (ORDER BY column2) FROM table_name GROUP BY column1; ``` 这将根据`column1`的值对记录进行分组,并用逗号和空格连接每个组内的`column2`。 4. **...
- `SELECT column_name, COUNT(*) FROM table_name GROUP BY column_name HAVING COUNT(*) > 10;` ##### 7.5 GROUPING函数 - **GROUPING**:用于分组查询中的特殊功能。 #### 八、高级子查询 ##### 8.1 成对子...
- **GROUP BY**: 对结果集按照一个或多个列进行分组。 **1.19 子查询** - **简单子查询**: 在一个查询中嵌套另一个查询。 - **相关子查询**: 外层查询的每行都需要执行内层查询。 **1.20 替换变量** - **&**: ...
例如,SELECT Clause用于指定要选择的列,FROM Clause指定数据来源,WHERE Clause过滤结果,GROUP BY Clause用于分组,HAVING Clause在分组后进行过滤,ORDER BY Clause对结果进行排序。 Oracle SQL的深入学习还...
- 示例: `select department, sum(salary) as total_salary from employees group by department having total_salary > 100000;` ##### 6.3 数据分组总结 - **分组总结**: 综合使用 `group by` 和 `having` 子句...
SELECT SUM(quantity) FROM A GROUP BY TRUNC(created_date + (ADD_MONTHS(created_date, 1) - created_date - 20), 'MM'); ``` - **知识点解析:** - `ADD_MONTHS()` 函数:此函数用于获取给定日期之后的指定...
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 关于数据的问题...