Différence de syntaxe, (KEEP, FIRST_VALUE)
Bonjour,
J'utilise depuis quelque temps les fonctions analytiques et je viens de découvrir la fonction KEEP.
J'ai un peu de mal à voir l'interêt par rapport à ce que j'utilisais avant.
Voici un exemple :
Sans KEEP :
Code:
1 2 3 4 5
| SELECT champ1, champ2, quantité,
MIN(quantite) OVER(PARTITION BY champ2) q_min,
FIRST_VALUE(champ1) OVER(PARTITION BY champ2 ORDER BY quantite) c_min
FROM table
WHERE conditions |
Avec KEEP :
Code:
1 2 3 4 5
| SELECT champ1, champ2, quantité,
MIN(quantite) OVER(PARTITION BY champ2) q_min,
MIN(champ1) KEEP(DENSE_RANK FIRST ORDER BY quantite) OVER(PARTITION BY champ2) c_min
FROM table
WHERE conditions |
Je trouve les mêmes résultats.
Quel est la meilleur syntaxe si il y en a une et pourquoi ?
Et sinon il y a-t-il une utilisation de KEEP qui m'échappe ?
Merci d'avance.