SQL выбрать максимальное значение из таблицы - PullRequest
3 голосов
/ 05 мая 2011

В одном из моих интервью меня спросили, как можно выбрать максимальное значение из БД без ключевых слов MAX и TOP.

Мой ответ был:

select Table.Value 
from Table 
where Table.Value >= all( select Table.Value from Table) 

Ноэто был не тот.Интервьюер сказал, что я должен сделать это только с одним выбором.

Есть идеи?

Спасибо;)

Ответы [ 5 ]

6 голосов
/ 05 мая 2011

Как насчет;

select -min(-fld) from table

Менее эффективно и уродливее Woops пропустил ограничение на одиночный выбор

select distinct Value from Table T
  where not exists (select Value from Table where Value > T.Value)
4 голосов
/ 05 мая 2011
SELECT t1.Value
FROM atable t1
 LEFT JOIN atable t2 ON t1.Value < t2.Value
WHERE t2.ID IS NULL
2 голосов
/ 05 мая 2011

Одно предложение (если вы используете MySQL, я также поставлю ограничение):

SELECT table.value FROM table ORDER BY table.value DESC LIMIT 1;
2 голосов
/ 05 мая 2011
SET ROWCOUNT 1

SELECT number 
FROM master..spt_values
ORDER BY number DESC
0 голосов
/ 05 мая 2011

упорядочить результат, установленный по ключу, по убыванию, null последним. Это делает строку с максимумом, в первую очередь.

выберите первый ряд, и все готово.

...