当前位置: 首页 > 教程 > MariaDB >

MariaDB Max()函数

精华
小牛编辑
120浏览
2023-03-14

MariaDB MAX()函数用于检索表达式的最大值。

语法:

SELECT MAX(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');

1. MAX()函数与单表达式

示例:

查询Student表的最低分数。参考以下查询语句 -

SELECT MAX(Score) AS "Greatest Score" FROM students;

执行上面查询语句,得到以下结果 -

MariaDB [testdb]> SELECT MAX(Score) AS "Greatest Score" FROM students;
+----------------+
| Greatest Score |
+----------------+
|          100.0 |
+----------------+
1 row in set (0.03 sec)

2. MAX()函数与GROUP BY子句

可以使用MAX函数的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 |
+------------+--------------+-----------------+----------------+-------+
7 rows in set (0.07 sec)

示例:

SELECT student_name, MAX(score) AS "Lowest Score"  
FROM Students  
where student_id < 10  
GROUP BY student_name;

执行上面查询语句,得到以下结果 -

MariaDB [testdb]> SELECT student_name, MAX(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        |         99.5 |
+--------------+--------------+
6 rows in set (0.04 sec)