MariaDB MIN()
函数用于检索表达式的最小值。
语法:
SELECT MIN(aggregate_expression) FROM tables [WHERE conditions];
数据准备
在"testdb"
数据库中创建一个"students"
表,并插入一些数据。参考以下创建语句 -
USE testdb; DROP TABLE students; -- 创建新表 CREATE TABLE students( student_id INT NOT NULL AUTO_INCREMENT, student_name VARCHAR(100) NOT NULL, student_address VARCHAR(40) default NULL, admission_date DATE, score float(4, 1) default NULL, PRIMARY KEY ( student_id ) ); -- 插入数据 INSERT INTO students (student_id, student_name, student_address,score, admission_date) VALUES(1,'Maxsu','Haikou', 99.5,'2017-01-07 00:00:00'); INSERT INTO students (student_id, student_name, student_address, score, admission_date) VALUES (2,'Crurry','Beijing',86,'2016-05-07 00:00:00'), (3,'JMaster','Beijing',91,'2016-05-07 00:00:00'), (4,'Mahesh','Guangzhou',78,'2016-06-07 00:00:00'), (5,'Kobe','Shanghai',89,'2016-02-07 00:00:00'), (6,'Blaba','Shengzhen',100,'2016-08-07 00:00:00');
示例:
查询Student
表的最低分数。参考以下查询语句 -
SELECT Min(Score) AS "Lowest Score" FROM students;
执行上面查询语句,得到以下结果 -
MariaDB [testdb]> SELECT Min(Score) AS "Lowest Score" FROM students; +--------------+ | Lowest Score | +--------------+ | 78.0 | +--------------+ row in set (0.00 sec)
可以使用Min
函数的GROUP BY
子句来分组。
再插入一条重复的数据 -
INSERT INTO students (student_name, student_address,score, admission_date) VALUES('Maxsu','Haikou', 91,'2017-11-07 00:00:00');
当前数据库中的记录如下 -
MariaDB [testdb]> select * from students; +------------+--------------+-----------------+----------------+-------+ | student_id | student_name | student_address | admission_date | score | +------------+--------------+-----------------+----------------+-------+ | 1 | Maxsu | Haikou | 2017-01-07 | 99.5 | | 2 | Crurry | Beijing | 2016-05-07 | 86.0 | | 3 | JMaster | Beijing | 2016-05-07 | 91.0 | | 4 | Mahesh | Guangzhou | 2016-06-07 | 78.0 | | 5 | Kobe | Shanghai | 2016-02-07 | 89.0 | | 6 | Blaba | Shengzhen | 2016-08-07 | 100.0 | | 7 | Maxsu | Haikou | 2017-11-07 | 91.0 | +------------+--------------+-----------------+----------------+-------+ rows in set (0.07 sec)
示例:
SELECT student_name, MIN(score) AS "Lowest Score" FROM Students where student_id < 10 GROUP BY student_name;
执行上面查询语句,得到以下结果 -
MariaDB [testdb]> SELECT student_name, MIN(score) AS "Lowest Score" -> FROM Students -> where student_id < 10 -> GROUP BY student_name; +--------------+--------------+ | student_name | Lowest Score | +--------------+--------------+ | Blaba | 100.0 | | Crurry | 86.0 | | JMaster | 91.0 | | Kobe | 89.0 | | Mahesh | 78.0 | | Maxsu | 91.0 | +--------------+--------------+ rows in set (0.00 sec)