0

我正在使用以下查询从视图中选择数据

SELECT * FROM "SCH"."MyView"

如果我添加 ORDER BY

SELECT * FROM "SCH"."MyView"
ORDER BY Name

我收到以下错误

[Err] ORA-00979: not a GROUP BY expression

Oracle 查询引擎是否将其转换为无效查询?如何开始对这样的事情进行故障排除?

这是“SCH”的简化版。“MyView”

SELECT
    Name,
    (subquery) AS Foo,
    (subquery) AS Bar
FROM
    "SCH"."AnotherView"
GROUP BY 
    Name

如果我删除子查询,我可以使用 ORDER BY 而不会出现错误消息。子查询如下:

( SELECT f.UnitPrice FROM "SCH"."AnotherView" f WHERE f.Name = main.Name AND f.Category = 'x' AND rownum < 2 ) AS priceX
( SELECT b.UnitPrice FROM "SCH"."AnotherView" b WHERE b.Name = main.Name AND b.Category = 'y' AND rownum < 2 ) AS priceY

编辑:如果我添加“WHERE rownum < 9999999”,我会摆脱错误。我们正在运行 10.2.0.4.0 64 位版本。

4

1 回答 1

0

也许您试图执行一个SELECT语句,该语句包含一个GROUP BY函数(即:、、、、)MINMAX一个不在子句中的列表中的表达式。SUMCOUNTSELECTGROUP BY

于 2012-02-28T09:29:39.233 回答