SQL KEEP i DENSE RANK
De vegades en un llistat de la base de dades amb molts elements. La base de dades retorna més d’un valor per un mateix element, i només vols agafar el valor més nou.
La solució és utilitzar KEEP LAST:
SELECT empno,
deptno,
sal,
MIN(sal) KEEP (DENSE_RANK FIRST ORDER BY sal) OVER (PARTITION BY deptno) “Lowest”,
MIN(sal) KEEP (DENSE_RANK LAST ORDER BY sal) OVER (PARTITION BY deptno) “Highest”
FROM emp
ORDER BY deptno, sal;
Més informació https://oracle-base.com/articles/misc/rank-dense-rank-first-last-analytic-functions