SQL聚合函数的改进用法

1.正常语法

SELECT  MAX (staff_salary) FROM  table_name

这样只能查出来一个最大薪资,不能查出员工的ID,NAME等其他信息。

原因是什么呢?

因为max()函数属于聚合函数,处理的是组数据,在本例中,MAX函数将整个TEACHER表看成一组,而TNAME、DNAME和TSEX的数据都没有进行任何分组,因此SELECT语句没有逻辑意义。

如果我们要查询其他的信息,就要使用子查询来进行查询我们的其他信息

2.下面的代码也是无效的。

SELECT ID,NAME, SEX,AGE
FROM  table_name   
WHERE staff_salary=MAX (staff_salary)

解决这个问题的方法,就是在WHERE子句中使用子查询来返回最大值,然后再基于这个返回的最大值,查询相关信息。

3.在WHERE子句中使用子查询返回最大值

SELECT staff_name,staff_sex 
FROM  staff 
WHERE staff_salary=(SELECT MAX(staff_salary) from staff);

4.注意
确定列中的最大值(最小值)时,MAX( )(MIN( ))函数忽略NULL值。但是,如果在该列中,所有行的值都是NULL,则MAX( )/MIN( )函数将返回NULL值。

你可能感兴趣的:(sql,数据库,database)