SQL подзапрос min() не работает

#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