Справочное руководство по MySQL версии 4.1.1-alpha

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


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

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

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

В версиях MySQL до 4.1 такая задача выполняется в два этапа:

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



    Содержание раздела