MySQL. Как получить максимальное значение. Как получить минимальное значение


Содержание материала:

Поиск минимального и максимального значений

В MySQL имеются встроенные функции для вычисления минимального и максимального значений.

SQL имеет 5 агрегатных функций.

  1. MIN(): минимальное значение
  2. MAX(): максимальное значение
  3. SUM(): сумма значений
  4. AVG(): среднее значений
  5. COUNT(): подсчитывает число записей

В этом параграфе мы рассмотрим поиск минимального и максимального значений столбца.

Максимальное и минимальное значения MySQL

Иногда нужно узнать максимальное или минимальное значение какого-то поля в таблице. В частности, это используется, чтобы узнать максимальный id . Для этой цели есть функции MIN и MAX . В скобках нужно указать по какому полю определяется максимальное значение. Запрос будет выглядеть так:

SELECT MAX(поле) FROM таблица

Рерультат такого запроса состоит из массива, содержащего полученное число. Создадим скрипт, который получает максимальное значение поля dif в таблице users и выводит это значение на экран:

Для получения минимального значения нужно отправить такойже запрос, только вместо функции MAX пишется функция MIN . В дальнейшем можно получить строки с минимальным или маскимальным значением нужного поля и работать с этими данными.

Коприрование материалов сайта возможно только с согласия администрации

MySQL. Как получить максимальное значение. Как получить минимальное значение

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

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

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

  1. Следует получить максимальное значение цены из таблицы при помощи оператора SELECT.
  2. Используя это значение, необходимо составить следующий запрос:

Существует еще одно решение: отсортировать все строки по убыванию цен и после этого получить первую строку, используя специальный оператор LIMIT :

Примечание: если существует несколько самых дорогих изделий (например, каждое из них стоит 19,95), запрос, использующий LIMIT , возвращает лишь одно из них!

Получение значений максимальной и минимальной суммы для mysql


4 Manosch [2013-06-08 19:37:00]

Добрый день всем, кому я хотел бы получить запрос, который может дать мне как максимальную, так и минимальную суммы. В частности, у меня есть следующие таблицы:

так что в основном я должен показать продукт, который был куплен больше всего, и продукт, который был куплен наименее. T попробовали это:

но я получаю код ошибки 1111: неверное использование групповой функции.

Как найти максимальное значение из нескольких значений в MYSQL?

Denisv

То есть Нужно организовать подобие функции max() в php. Мне нужно получать максимальное значение 4х полей одной записи и по этому значению осуществлять сортировку. Для ясности, логически я представляю это примерно так: SELECT *, MAKS( field1, field2, field3, field4 ) as sort FROM table ORDER BY sort.
Ребят, помогите. Совсем уже голову сломал.
Дополнено (1). Один ряд — никак, а множество рядов по максимальному значению в каждом из них — логично. Точно так же как и в сортировке по одному полю.
Дополнено (2). Извините, не понимаю о чём речь. Не могли бы Вы показать напримере запроса?
Дополнено (3). Спасибо огромное! Это то что нужно и то что имелось ввиду! Никак не мог нарыть функцию GREATEST! Ещё раз спасибо!

Epsiloncool (Epsilon S

>>> и по этому значению осуществлять сортировку.

Как вы себе представляете сортировку по значению? Как например ряд 1, 2, 3, 6, 7 можно отсортировать по значению 14?

Может быть, сопоставить каждому ряду из первоначальной таблицы значение из вашего набора, а затем отсортировать по вашему набору? Но тогда надо определиться с тем — как вы сопоставляете свои значения рядам.

Epsiloncool (Epsilon S

Так я и говорю — привяжите ваши значения к рядам и отсортируйте по этим значениям.

Epsiloncool (Epsilon S

лучший ответ А, я извиняюсь, до меня дошло.

Вот ваш ответ
SELECT *, GREATEST( field1, field2, field3, field4 ) as sort FROM table ORDER BY sort

Как получить минимальное значение идентификатора и максимальное значение идентификатора в таблице MySQL

Это таблица рабочих деталей. Теперь я хочу получить данные о времени В и времени от MySQL на андроид.

Предположим, ID (TWD) содержит 8, так String MiNtimeIn предположим, дисплей 21:52 (id 3) и String MaXtimeOut показать 1:52 (id 4), но я получаю

Как я могу получить timeIn из минимального идентификатора и timeOut из максимального идентификатора где twd = 8?

Предположим, что TWD 10, я думаю, чтобы получить 1:50:00 и 6:51:00, но я получаю

Кажется, что он получает только одну строку данных.

1 ответ

Возможно, для Вашего проекта будут необходимы бесплатные векторные карты. На нашем сайте представлены карты для всех стран.


тип org.json.JSONArray не может быть преобразован в JSONObject

Средство ответа JSON String содержит JSONArray из JSONObject . поэтому преобразуйте JSON String в JSONArray, а затем выполните итерацию для получения всех JSONObject-ов из него, например:

MySQL. Как происходит получение максимального/минимального значения? (mysql)

Всем доброго времени суток!

С коллегами небольшой спор произошел по скорости выполнения(и как следствие по оптимальности работы) следующей задачи:

Необходимо из БД вытащить записи (от 1 до 5*10^6) используя фильтр. Найти минимальный, максимальный элемент. Зная минимальный, с шагом в N записей пройтись по всем записям (естественно попавшим под фильтр) до максимального. После каждой порционной выборки выполняем необходимые действия с полученными записями.

Решений видим два:

Получаем минимальный (1 запрос), максимальный(1 запрос). Зная минимальный и используя Limit и Offset, пробегаемся до максимального (x запросов)

Получаем все записи, попавшие под фильтр(1 запрос). На бэке уже разбиваем полученный массив на подмассивы, и работаем с каждой порцией записей.

Спорный момент в скорости выполнения всей задачи и нагрузке на мускуль. Решающие моменты:

когда получаем минимальный/максимальный элемент — мы делаем выборки по всем записям, сортируем и берём первый?

Если брать сразу все записи, попавшие под фильтр — может «задуматься» мускуль( т.к. возвращать придется в худшем случае 5*10^6 записей и более)

Всё осложняется тем, что могут быть LEFT JOIN-ы.

Где лучше почитать о том, работает mysql: создание временным таблиц и т.д.

MySQL получить максимальное и минимальное значение поля за последние 5 минут timestamp

У меня есть скрипт, который вставляет много записей в таблицу MySQL одновременно. Это означает, что у меня есть> 100 записей с одной и той же меткой времени, еще> 100 записей с этой меткой времени плюс 1 секунда .

Этот скрипт запускается время от времени, поэтому я получаю лоты записей в течение нескольких минут каждый раз при запуске скрипта. Я хочу получить максимальное и минимальное значение для определенного поля MYFIELD, посмотрев только на последние 5 минут временной метки, поэтому я могу получить эти значения min и max из последнего исполнения скрипта.

Возможно ли это? Как?

Создан 03 июн. 13 2013-06-03 10:38:10 Roman Rdgz

2 ответа


Сначала найдите последнюю метку времени:

И использовать его, чтобы получить MIN и MAX:

Создан 03 июн. 13 2013-06-03 12:16:13 Olivier Coilland

Один из способов — добавить столбец (скажем, insert_timestamp), чтобы отслеживать вставленную временную метку строки. поэтому запрос будет так же просто, как

Создан 03 июн. 13 2013-06-03 10:55:56 chetan

Почему я не могу просто использовать что над полем временной метки? Невозможно изменить сценарий, чтобы добавить еще один столбец. – Roman Rdgz 03 июн. 13 2013-06-03 11:03:36

хорошо, я не думаю, что вы могли бы сделать это, не отслеживая вставленное время. – chetan 03 июн. 13 2013-06-03 11:26:17

Как найти максимальное значение из нескольких значений в MYSQL?

Denisv

То есть Нужно организовать подобие функции max() в php. Мне нужно получать максимальное значение 4х полей одной записи и по этому значению осуществлять сортировку. Для ясности, логически я представляю это примерно так: SELECT *, MAKS( field1, field2, field3, field4 ) as sort FROM table ORDER BY sort.
Ребят, помогите. Совсем уже голову сломал.
Дополнено (1). Один ряд — никак, а множество рядов по максимальному значению в каждом из них — логично. Точно так же как и в сортировке по одному полю.
Дополнено (2). Извините, не понимаю о чём речь. Не могли бы Вы показать напримере запроса?
Дополнено (3). Спасибо огромное! Это то что нужно и то что имелось ввиду! Никак не мог нарыть функцию GREATEST! Ещё раз спасибо!

Epsiloncool (Epsilon S

>>> и по этому значению осуществлять сортировку.

Как вы себе представляете сортировку по значению? Как например ряд 1, 2, 3, 6, 7 можно отсортировать по значению 14?

Может быть, сопоставить каждому ряду из первоначальной таблицы значение из вашего набора, а затем отсортировать по вашему набору? Но тогда надо определиться с тем — как вы сопоставляете свои значения рядам.

Epsiloncool (Epsilon S

Так я и говорю — привяжите ваши значения к рядам и отсортируйте по этим значениям.

Epsiloncool (Epsilon S

лучший ответ А, я извиняюсь, до меня дошло.

Вот ваш ответ
SELECT *, GREATEST( field1, field2, field3, field4 ) as sort FROM table ORDER BY sort

Форум пользователей MySQL

Задавайте вопросы, мы ответим

Страниц: 1

#1 20.06.2020 23:34:32

Как выбрать максимальное значение при группировке?


Помогите, пожалуйста, не могу сообразить, как при группировке по дате выбрать максимальное значение второго поля?

Таблица:
id | date | number
1 | 2020-10-21 | 1
2 | 2020-10-21 | 2
3 | 2020-10-21 | 4
4 | 2020-10-22 | 1
5 | 2020-10-22 | 8
6 | 2020-10-22 | 2

Желаемый результат:
3 | 2020-10-21 | 4
5 | 2020-10-22 | 8

#2 20.06.2020 23:37:45

Re: Как выбрать максимальное значение при группировке?

#3 25.06.2020 19:33:41

Re: Как выбрать максимальное значение при группировке?

На сколько я понимаю, там предлагается дату (timestamp) взять как за уникальное поле, а у меня даты одинаковые, и по ним нужно сгруппировать. Видимо, я чего-то недопонимаю (

#4 25.06.2020 19:54:37

Re: Как выбрать максимальное значение при группировке?

в статье группировка идет по пользователю для которого выбирается максимальная дата
у вас группировка по дате для которой максимальный number

в примерах из статьи замените user_id на date, а time на number

#5 29.06.2020 11:13:35

Re: Как выбрать максимальное значение при группировке?

Vasya, получилось, спасибо!

Однако, к текущему моменту задача усложнилась.

Необходимо в рамках текущей даты выбрать максимальный number для каждого user_id.

Таблица:
id | date | number | user_id
1 | 2020-10-21 | 1 | 1
2 | 2020-10-21 | 2 | 1
3 | 2020-10-21 | 4 | 2
4 | 2020-10-21 | 1 | 2
5 | 2020-10-22 | 8 | 1
6 | 2020-10-22 | 2 | 1
7 | 2020-10-22 | 1 | 2
8 | 2020-10-22 | 2 | 2
9 | 2020-10-22 | 4 | 2

Желаемый результат:
2 | 2020-10-21 | 2 | 1
3 | 2020-10-21 | 4 | 2
5 | 2020-10-22 | 8 | 1
9 | 2020-10-22 | 4 | 2

Чё-то никак не могу продолжить мысль, как это сделать (

Топ-пост этого месяца:  Как получить сертификат специалиста Google AdWords (Ads)
Добавить комментарий