#sql #oracle #group-by #subquery
#sql #Oracle #группировка по #подзапрос
Вопрос:
Как мне заставить оператор Select, который не работает, работать (oracle 11g)?
Работает:
SELECT * FROM (Select statement that returns 4 rows) where Column1= 1
Не работает:
SELECT * FROM (Select statement that returns 4 rows) where Column1= MIN(Column1)
Ошибка= Групповая функция здесь не разрешена
Не работает:
SELECT * FROM (Select statement that returns 4 rows) where Column1= MIN(Column1)
Group by (names of columns in select statement)
Та же ошибка групповой функции, что и выше
Ответ №1:
В SQL Server или Oracle попробуйте использовать оконные функции:
select s.*
from (select s.*, min(column1) over () as mincolumn1
from (Select statement that returns 4 rows
) s
) s
where Column1 = minColumn1;
Комментарии:
1. Я не использую SQL Server, а Oracle 11g
2. Хм, он не был помечен ими, вы, должно быть, перепутали. Впрочем, ничего страшного. Я ценю ваш ответ, но опубликовал ответ, который сработал лучше всего для меня. Спасибо, что уделили время!
3. @TheJavaBeast . , , Я, должно быть, был в замешательстве. Извиняюсь.
Ответ №2:
SELECT * FROM (оператор Select, который возвращает ПОРЯДОК строк 4 ПО столбцу 1 ASC), где число строк <= 1