3.5.2 Строка, содержащая максимальное значение некоторого столбца

"Как определить номер, дилера и цену самого дорогого изделия?"

В ANSI SQL это легко делается при помощи вложенного запроса:

SELECT article, dealer, price
FROM   shop
WHERE  price=(SELECT MAX(price) FROM shop)

В MySQL (в котором вложенные операторы SELECT еще не реализованы) такая задача выполняется в два этапа:

  1. Следует получить максимальное значение цены из таблицы при помощи оператора SELECT.
  2. Используя это значение, необходимо составить следующий запрос:
    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, возвращает лишь одно из них!