Использование ключевого слова DISTINCT вызывает эту ошибку: не выбранное выражение

у меня есть запрос, который выглядит примерно так:

SELECT DISTINCT share.rooms
FROM Shares share
  left join share.rooms.buildingAdditions.buildings.buildingInfoses as bi
... //where clause omitted
ORDER BY share.rooms.floors.floorOrder, share.rooms.roomNumber,
         share.rooms.firstEffectiveAt, share.shareNumber, share.sharePercent

что приводит к следующим исключением:

Caused by: org.hibernate.exception.SQLGrammarException: ORA-01791: not a SELECTed expression

Если я удаляю ключевое слово DISTINCT, запрос выполняется без проблем. Если я удаляю предложение order by, запрос выполняется без проблем. К сожалению, я не могу получить упорядоченный набор результатов без дубликатов.

1 ответов


вы пытаетесь упорядочить свой результат со столбцами, которые не вычисляются. Это не было бы проблемой, если бы у вас не было DISTINCT там, но так как ваш запрос в основном группируется только по share.rooms столбец, как он может упорядочить этот результирующий набор с другими столбцами, которые могут иметь несколько значений для одного и того же share.rooms один?