Функция MIN
Функция MIN возвращает минимальное значение поля среди найденных строк.
Синтаксис
SELECT MIN(поле) FROM имя_таблицы WHERE условие
Таблицы для примеров
| id айди |
name имя |
age возраст |
salary зарплата |
|---|---|---|---|
| 1 | user1 | 23 | 400 |
| 2 | user2 | 25 | 500 |
| 3 | user3 | 23 | 500 |
| 4 | user4 | 30 | 900 |
| 5 | user5 | 27 | 500 |
| 6 | user6 | 28 | 900 |
Пример
Давайте найдем минимальное значение зарплаты в таблице:
SELECT MIN(salary) as min FROM employees
Результат выполнения SQL запроса:
| min минимальная зарплата |
|---|
| 300 |
Пример
Давайте найдем минимальное значение зарплаты среди тех записей, у которых id больше или равен 2 -м:
SELECT MIN(salary) as min FROM employees WHERE id>=2
Результат выполнения SQL запроса:
| min минимальная зарплата |
|---|
| 400 |
Пример
Давайте найдем максимальное и минимальное значение зарплаты одновременно:
SELECT MIN(salary) as min, MAX(salary) as max FROM employees
Результат выполнения SQL запроса:
| min минимальная зарплата |
max максимальная зарплата |
|---|---|
| 300 | 700 |
Смотрите также
- функцию MAX ,
которая возвращает максимальное значение
Функция SQL MIN()
Оператор SQL MIN() — функция возвращающая минимальное значение столбца.
Функция SQL MIN() имеет следующий синтаксис:
MIN(column_name)
Примеры оператора SQL MIN: Имеется следующая таблица Universities :
| ID | UniversityName | Students | Faculties | Professores | Location | Site |
| 1 | Perm State National Research University | 12400 | 12 | 1229 | Perm | psu.ru |
| 2 | Saint Petersburg State University | 21300 | 24 | 13126 | Saint-Petersburg | spbu.ru |
| 3 | Novosibirsk State University | 7200 | 13 | 1527 | Novosibirsk | nsu.ru |
| 4 | Moscow State University | 35100 | 39 | 14358 | Moscow | msu.ru |
| 5 | Higher School of Economics | 20335 | 12 | 1615 | Moscow | hse.ru |
| 6 | Ural Federal University | 57000 | 19 | 5640 | Yekaterinburg | urfu.ru |
| 7 | National Research Nuclear University | 8600 | 10 | 936 | Moscow | mephi.ru |
Пример 1. Используя оператор SQL MIN найти минимальное значение столбца Professores:
SELECT MIN(Professores) FROM Universities
Пример 2. Используя оператор SQL MIN найти минимальное значение колонки Students, где расположение университета (Location) — Moscow:
SELECT MIN(Students) FROM Universities WHERE Location = 'Moscow'
Пример 3. Используя оператор SQL MIN найти город (Location), в университете меньше всего студентов (Students):
SELECT Location FROM Universities WHERE Students = (SELECT MIN(Students) FROM Universities)
Логические функции — LEAST (Transact-SQL)
Эта функция возвращает минимальное значение из списка, содержащего одно или несколько выражений.
Синтаксис
LEAST ( expression1 [ , . expressionN ] )
Аргументы
expression1, expressionN
Список выражений любого сопоставимого типа данных, разделенный запятыми. Функция LEAST требует по меньшей мере один аргумент, но не более 254 аргументов.
Каждое выражение может быть константой, переменной, именем столбца или функцией, а также любым сочетанием арифметических, битовых и строковых операторов. Допускаются агрегатные функции и скалярные вложенные запросы.
Типы возвращаемых данных
Возвращает тип данных с наивысшим приоритетом из переданного функции набора типов. Дополнительные сведения см. в разделе Приоритет типов данных (Transact-SQL).
Если все аргументы имеют одинаковый тип данных и тип поддерживается для сравнения, LEAST возвращает этот тип.
В противном случае функция перед сравнением неявно приводит все аргументы к типу данных с наивысшим приоритетом и использует его как тип возвращаемого значения.
Для числовых типов масштаб типа возвращаемого значения будет соответствовать масштабу аргумента, имеющего тип данных с наивысшим приоритетом, либо наибольшему масштабу, если таких аргументов несколько.
Замечания
Все выражения в списке аргументов должны иметь сопоставимый тип данных, который может быть неявно преобразован в тип аргумента с наивысшим приоритетом.
Перед сравнением выполняется неявное приведение всех аргументов к типу данных с наивысшим приоритетом.
Если неявное преобразование типов между аргументами не поддерживается, функция завершится ошибкой и возвращает ошибку.
Дополнительные сведения о явном и неявном преобразовании см. в статье Преобразование типов данных (ядро СУБД).
Если один или несколько аргументов не NULL являются, NULL то аргументы игнорируются во время сравнения. Если все аргументы являются NULL , возвращается NULL LEAST .
Сравнение символьных аргументов осуществляется в соответствии с правилами, приведенными в статье Очередность параметров сортировки.
Для сравнения не поддерживаются следующие типы: varchar(max), varbinary(max) или nvarchar(max) превышающие 8000 байт, курсор, геометрия , география, география, изображение, неупорядоченные пользователем типы, ntext, table, text и xml. LEAST
Типы данных varchar(max), varbinary(max)и nvarchar(max) поддерживаются для аргументов, 8000 байт или меньше, и будут неявно преобразованы в varchar(n), varbinary(n)и nvarchar(n), соответственно, перед сравнением.
Например, varchar(max) может поддерживать до 8000 символов, если используется набор символов с одним байтом, а nvarchar(max) может поддерживать до 4000 байт-пар (при условии кодировки символов UTF-16).
Примеры
А. Возвращает максимальное значение из списка констант
В следующем примере возвращается минимальное значение из указанного списка констант.
Масштаб типа возвращаемого значения определяется масштабом аргумента с типом данных, имеющим наивысший приоритет.
SELECT LEAST('6.62', 3.1415, N'7') AS LeastVal; GO
LeastVal ------- 3.1415 (1 rows affected)
B. Возвращает минимальное значение из списка типов символов
В следующем примере возвращается минимальное значение из указанного списка символьных констант.
SELECT LEAST('Glacier', N'Joshua Tree', 'Mount Rainier') AS LeastString; GO
LeastString ------------- Glacier (1 rows affected)
C. Возвращает минимальное значение из списка аргументов столбцов
Этот пример возвращает минимальное значение из списка аргументов столбца и при сравнении игнорирует значения NULL . В этом примере используется база данных AdventureWorksLT , которую можно быстро установить в качестве образца базы данных для нового экземпляра Базы данных SQL Azure. Дополнительные сведения см. в разделе Образцы баз данных AdventureWorks.
SELECT P.Name, P.SellStartDate, P.DiscontinuedDate, PM.ModifiedDate AS ModelModifiedDate, LEAST(P.SellStartDate, P.DiscontinuedDate, PM.ModifiedDate) AS EarliestDate FROM SalesLT.Product AS P INNER JOIN SalesLT.ProductModel AS PM ON P.ProductModelID = PM.ProductModelID WHERE LEAST(P.SellStartDate, P.DiscontinuedDate, PM.ModifiedDate) >= '2007-01-01' AND P.SellStartDate >= '2007-01-01' AND P.Name LIKE 'Touring %' ORDER BY P.Name;
Результирующий набор: EarliestDate выбирает наименьшее значение даты трех значений, игнорируя NULL .
Name SellStartDate DiscontinuedDate ModelModifiedDate EarliestDate ---------------------- ----------------------- ------------------- ----------------------- ----------------------- Touring Pedal 2007-07-01 00:00:00.000 NULL 2009-05-16 16:34:29.027 2007-07-01 00:00:00.000 Touring Tire 2007-07-01 00:00:00.000 NULL 2007-06-01 00:00:00.000 2007-06-01 00:00:00.000 Touring Tire Tube 2007-07-01 00:00:00.000 NULL 2007-06-01 00:00:00.000 2007-06-01 00:00:00.000 (3 rows affected)
D. Использование LEAST с локальными переменными
В этом примере с помощью LEAST определяется минимальное значение из списка локальных переменных в предикате предложения WHERE .
CREATE TABLE dbo.Studies ( VarX VARCHAR(10) NOT NULL, Correlation DECIMAL(4, 3) NULL ); INSERT INTO dbo.Studies VALUES ('Var1', 0.2), ('Var2', 0.825), ('Var3', 0.61); GO DECLARE @PredictionA DECIMAL(2, 1) = 0.7; DECLARE @PredictionB DECIMAL(3, 1) = 0.65; SELECT VarX, Correlation FROM dbo.Studies WHERE Correlation < LEAST(@PredictionA, @PredictionB); GO
Результирующий набор: Отображаются только значения меньше 0,65.
VarX Correlation ---------- ----------- Var1 .200 Var3 .610 (2 rows affected)
Д. Использование LEAST с столбцами, константами и переменными
В этом примере с помощью LEAST определяется минимальное значение из списка, содержащего столбцы, константы и переменные.
CREATE TABLE dbo.Studies ( VarX VARCHAR(10) NOT NULL, Correlation DECIMAL(4, 3) NULL ); INSERT INTO dbo.Studies VALUES ('Var1', 0.2), ('Var2', 0.825), ('Var3', 0.61); GO DECLARE @VarX DECIMAL(4, 3) = 0.59; SELECT VarX, Correlation, LEAST(Correlation, 1.0, @VarX) AS LeastVar FROM dbo.Studies; GO
VarX Correlation LeastVar ---------- --------------------- --------------------- Var1 0.200 0.200 Var2 0.825 0.590 Var3 0.610 0.590 (3 rows affected)
Следующие шаги
- GREATEST (Transact-SQL)
- MAX (Transact-SQL)
- MIN (Transact-SQL)
- CASE (Transact-SQL)
- CHOOSE (Transact-SQL)
Поиск минимального и максимального значения в MySQL
Есть определённая таблица, в ней есть поле "price", тип поля "TEXT". Нужно найти минимальное и максимальное значение (цену), для этого использую запрос:
SELECT MIN(price), MAX(price) FROM $table_base
Но он возвращает значения: 1 и 999.99 соответственно. Минимальное значение отрабатывает чётко, а вот максимальное, нет. Так как в столбце присутствуют значения: 1500.3, 1122.22, 13.99, 999.99, 12.12, 79.79, 100.10, 13333.33, 1, 11 Возникает вопрос, как работают данные команды и как решить вопрос с тем что бы они находили верные решения.
Отслеживать
8,900 11 11 золотых знаков 31 31 серебряный знак 55 55 бронзовых знаков
