3.5.2 Строка, содержащая максимальное значение некоторого столбца
"Как определить номер, дилера и цену самого дорогого изделия?"
В ANSI SQL это легко делается при помощи вложенного запроса:
SELECT article, dealer, price
FROM shop
WHERE price=(SELECT MAX(price) FROM shop)
В MySQL (в котором вложенные операторы SELECT
еще не реализованы) такая
задача выполняется в два этапа:
-
Следует получить максимальное значение цены из таблицы при помощи
оператора SELECT.
-
Используя это значение, необходимо составить следующий запрос:
SELECT article, dealer, price
FROM shop
WHERE price=19.95
Существует еще одно решение: отсортировать все строки по убыванию цен и
после этого получить первую строку, используя специальный оператор LIMIT
:
SELECT article, dealer, price
FROM shop
ORDER BY price DESC
LIMIT 1
Примечание: если существует несколько самых дорогих изделий (например,
каждое из них стоит 19,95), запрос, использующий LIMIT
, возвращает лишь
одно из них!