Oracle, ORDER BY с просмотром результатов по ошибке - PullRequest
0 голосов
/ 28 февраля 2012

Я выбираю данные из представления по следующему запросу

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 64bit. </p>

1 Ответ

0 голосов
/ 28 февраля 2012

Возможно, вы пытались выполнить оператор SELECT, который включал функцию GROUP BY (то есть: MIN, MAX, SUM, COUNT) и выражение в списке SELECT, которое было не в пункте GROUP BY.

...