在Oracle 11g中,我们需要能够查询表以从特定组中具有最高和最低值的行中提取信息。例如,使用EMP表,我们想要找到每个部门中薪水最高的人的名字和薪水最低的人的名字
DEPTNO MAX_SAL MAX_EARNER MIN_SAL MIN_EARNER
-------------------------------------------------------
10 5000 KING 1300 MILLER
20 3000 FORD 2975 JONES
etc
Run Code Online (Sandbox Code Playgroud)
(如果有两个或更多员工的薪水最高或最低,我们希望始终按字母顺序返回第一个)。
一个一篇文章讨论了如何获取值只是最大但不能同时最大值和最小值。
基于上面的链接,我们目前有一个不整洁的解决方案,然后应用后续查询,但性能对我们很重要。我预测一个好的解决方案还需要解析函数,并且可能需要一个枢纽来将多行合并为单行。
任何帮助,不胜感激!理查德