ErrorMessage: ORA-00979: 不是 GROUP BY 表达式
时间: 2023-12-20 07:05:35 浏览: 28
这个错误提示是 Oracle 数据库的错误,意思是在执行 GROUP BY 语句时,SELECT 语句中的某些列没有被包含在 GROUP BY 子句中,或者在 SELECT 语句中使用了聚合函数但是没有包含在 GROUP BY 子句中。解决这个问题的方法是确保 SELECT 语句中的所有非聚合列都被包含在 GROUP BY 子句中,或者使用聚合函数来计算这些列的值。如果你需要更具体的解释或者帮助,请提供更多的上下文信息。
相关问题
但是这样会报错:ORA-00979: not a GROUP BY expression
是的,您是正确的,如果使用通配符 "*" 来选择所有列,那么在 GROUP BY 子句中也必须包含所有选择的列,否则会出现 ORA-00979 错误,因为在 GROUP BY 子句中必须包含 SELECT 列表中的所有非聚合列。
如果您想选择所有列,可以将所有列都列出来,如下所示:
```
SELECT a.*, b.*, c.*
FROM sipm9 a, sipm9_objof b, sipm12 c
WHERE a.id = b.itemid1 AND b.itemid2 = c.id
GROUP BY a.id, a.name, b.col1, b.col2, ..., c.col1, c.col2, ...
HAVING SUM(c.id) > 5;
```
需要将所有列都列出来,这可能会使查询变得冗长,并且当表结构发生变化时,需要手动更新查询。因此,建议在 SELECT 子句中明确列出需要的列,而不是使用通配符。
ora-00979: 不是 group by 表达式
这是一个Oracle数据库的错误信息,意思是在一个GROUP BY语句中,你使用了一个不是GROUP BY表达式的值。也就是说,你在GROUP BY子句中使用了一个不是查询列或聚合函数的值。要解决这个错误,请确保GROUP BY子句中的所有项都是查询列或聚合函数。