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

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

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




Наш баннер
Вы можете установить наш баннер на своем сайте или блоге, скопировав этот код:
RSS новости