Справочное руководство по MySQL




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, возвращает лишь одно из них!


3.5.1 Максимальное значение столбцаОглавление3.5.3 Максимальное значение столбца для группы



Книжный магазин