一、 MAX/MIN函数的基本语法:
SELECT MAX (column_name) / MIN (column_name)
FROM table_name
二、 MAX()函数的使用
建表语句:
create table teacher
(
id int auto_increment
primary key,
name varchar(255) null,
sex varchar(1) null comment '性别',
age int null comment '年龄'
)
comment '教师表
';
1、查询TEACHER表中教师的最大年龄。实例代码:
SELECT MAX (AGE) AS MAX_AGE FROM TEACHER
这样只能查出来一个最大值,不能查出教师的ID,NAME等其他信息。
2、想改进?你可能想写成下面这样。
SELECT ID, NAME, SEX, MAX (AGE) FROM TEACHER
SQL不支持这种SELECT语句,因为MAX()函数属于聚合函数,处理的是组数据,在本例中,MAX函数将整个TEACHER表看成一组,而ID,NAME和SEX的数据都没有进行任何分组,因此SELECT语句没有逻辑意义。
3、下面的代码也是无效的。
SELECT ID,NAME, SEX ,AGE
FROM TEACHER
WHERE AGE=MAX (AGE)
解决这个问题的方法,就是在WHERE子句中使用子查询来返回最大值,然后再基于这个返回的最大值,查询相关信息。
4、在WHERE子句中使用子查询返回最大值
查询TEACHER表中年纪最大的教师的教工号、姓名、性别等信息。
实例代码:
SELECT ID, NAME, SEX, AGE
FROM TEACHER
WHERE AGE = (SELECT MAX(AGE) FROM TEACHER);
注意:
确定列中的最大值(最小值)时,MAX( )(MIN( ))函数忽略NULL值。但是,如果在该列中,所有行的值都是NULL,则MAX( )/MIN( )函数将返回NULL值。