但是这样会报错:ORA-00979: not a GROUP BY expression
时间: 2024-03-25 11:38:09 浏览: 154
ORA-00979 不是group by 表达式
5星 · 资源好评率100%
是的,您是正确的,如果使用通配符 "*" 来选择所有列,那么在 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 子句中明确列出需要的列,而不是使用通配符。
阅读全文