问题:计算给定列中的最大值和最小值。例如,计算所有职员的最高工资和最低工资,以及每个部门的最高工资和最低工资。
解决方案:要查所有职员的最低工资和最高工资,只需分别使用函数MIN和MAX:
SELECT MAIN(SAL) AS MIN_SAL,MAX(SAL) AS MAX_SAL FROM EMP;
要查每个部门的最低工资和最高工资,在使用函数MIN和MAX的同时,还要使用GROUP BY子句:
select deptno,min(sal) as min_sal,max(sal) as max_sal from emp group by deptno;
如果将整个表作为一个组或一个窗口查最大值或最小值,那么只需针对相应的列使用MIN或者MAX函数,而不要使用GROUP BY函数。
请注意:MIN和MAX函数会忽略NULL值,而且允许包含NULL组,组中的列也允许NULL值。