Суммирование при помощи функций MIN() и MAX()

Задача
Вам нужно определить наименьшее или наибольшее значения множества данных.

Решение
Используйте функцию MIN() для нахождения минимального значения, а функцию MAX() – для нахождения максимального значения.

Обсуждение
Нахождение наибольшего и наименьшего значений похоже на сортировку, только вместо того, чтобы выводить все упорядоченное множество, выбираем всего одно значение с одного или другого конца отсортированного списка. Такие операции выполняются для получения ответов на вопросы о наибольшем, наименьшем, самом молодом и старом, наиболее дорогом и дешевом и т. д. Одним из способов нахождения подобных значений является использование функций MIN() и MAX().

Поскольку функции MIN() и MAX() определяют экстремальные значения множества, их можно использовать для определения диапазонов:

• Какой диапазон дат представлен строками таблицы mail? Каковы размеры самого короткого и самого длинного сообщений?

mysql> SELECT
-> MIN(t) AS earliest, MAX(t) AS latest,
-> MIN(size) AS smallest, MAX(size) AS largest
-> FROM mail;


+--------------------------+--------------------------+----------+-----------+
| earliest | latest | smallest | largest |
+--------------------------+--------------------------+----------+-----------+
| 2001-05-11 10:15:08 | 2001-05-19 22:21:51 | 271 | 2394482 |
+--------------------------+--------------------------+----------+-----------+

• Какая поездка из таблицы driver_log была самой короткой, а какая самой длинной?

mysql> SELECT MIN(miles) AS shortest, MAX(miles) AS longest
-> FROM driver_log;

+----------+---------+
| shortest | longest |
+----------+---------+
| 79 | 502 |
+----------+---------+

• Каково наибольшее и наименьшее население штата США?

mysql> SELECT MIN(pop) AS 'fewest people', MAX(pop) AS 'most people'
-> FROM states;


+-----------------+---------------+
| fewest people | most people |
+-----------------+---------------+
| 453588 | 29760021 |
+-----------------+---------------+

• Название какого штата является первым в лексическом порядке, а какого – последним?

mysql> SELECT MIN(name), MAX(name) FROM states;


+-------------+---------------+
| MIN(name) | MAX(name) |
+-------------+---------------+
| Alabama | Wyoming |
+-------------+---------------+

Функции MIN() и MAX() необязательно должны применяться непосредственно к значениям столбцов. Они работают и с выражениями, и со значениями, полученными из значений столбцов. Например, чтобы определить длины самого короткого и самого длинного названий штата, выполните следующий запрос:

mysql> SELECT MIN(LENGTH(name)) AS shortest, MAX(LENGTH(name)) AS longest
-> FROM states;


+----------+---------+
| shortest | longest |
+----------+---------+
| 4 | 14 |
+----------+---------+
Теги:
MIN, MAX
Добавлено: 23 Июля 2018 06:15:58 Добавил: Андрей Ковальчук Нравится 0
Добавить
Комментарии:
Нету комментариев для вывода...