SQL 找出最大和最小的记录,你想找出表里的“极端”值。例如,你希望找到 EMP
表中工资最高和最低的员工。
SQL 找出最大和最小的记录 问题描述
你想找出表里的“极端”值。例如,你希望找到 EMP
表中工资最高和最低的员工。
SQL 找出最大和最小的记录 解决方案
DB2、Oracle 和 SQL Server
使用窗口函数 MIN OVER
和 MAX OVER
分别找出最低和最高的工资值,内嵌视图的查询结果集如下所示。
MySQL 和 PostgreSQL
使用两个子查询,分别返回 SAL
的最小值和最大值。
SQL 找出最大和最小的记录 扩展知识
有了窗口函数 MIN OVER
和 MAX OVER
,我们就能在每一行里访问到最低和最高的工资值。内嵌视图 X
的查询结果集如下所示。
得到了上述结果集之后,剩下的工作就是返回 SAL
等于 MIN_SAL
或 MAX_SAL
的行。
MySQL 和 PostgreSQL
本解决方案在 IN
列表里用了两个子查询分别找出 EMP
表的最低和最高工资值。外层查询返回的行就是和子查询返回值相匹配的结果。