Oracle中为了解决子集合中查询最值的问题,提出了KEEP()语法。
典型案列如:在每个部门中找出年龄最小的人中的最高工资。
基本语法结构:
MAX(COL2) KEEP (DENSE_RANK FIRST/LAST ORDER BY COL1) PARTITION BY()
http://blog.csdn.net/hustzw07/article/details/51190201
拓展:
查找年龄最小工资最高的人:
方法:使用First_value函数就可以。 FIRST_VALUE(EMPLOYEE_ID) OVER(PARTITION BY DEPARTMENT ORDER BY AGE, SALARY DESC)