Les fonctions LAG et LEAD sont deux fonctions analytiques qui permettent d'accéder à une ligne avant ou après la ligne courante, la syntaxe de ces fonctions est simple :
LAG|lead(colonne, nombre de ligne avant|après la ligne courante, valeur par default pour la première|dérniere ligne).
La valeur par défaut n'est pas obligatoire si vous l'omettez Oracle renvoie NULL à la place, un petit exemple :
SQL> select empno,sal,deptno,sal-lag(sal,1)
2 over (order by empno) as trou
3 from emp order by empno;
14 ligne(s) sélectionnée(s).
L’exemple précédent calcul la différence de salaire entre un employé et celui qui le précède directement dans empno, le suivant calcule l'inverse :
SQL> select empno,sal,deptno,sal-lead(sal,1)
2 over (order by empno) as trou
3 from emp order by empno;
14 ligne(s) sélectionnée(s).
voire le post fonctions analytiques
LAG|lead(colonne, nombre de ligne avant|après la ligne courante, valeur par default pour la première|dérniere ligne).
La valeur par défaut n'est pas obligatoire si vous l'omettez Oracle renvoie NULL à la place, un petit exemple :
SQL> select empno,sal,deptno,sal-lag(sal,1)
2 over (order by empno) as trou
3 from emp order by empno;
EMPNO | SAL | DEPTNO | TROU |
7369 | 800 | 20 | |
7499 | 1600 | 30 | 800 |
7521 | 1250 | 30 | -350 |
7566 | 2975 | 20 | 1725 |
7654 | 1250 | 30 | -1725 |
7698 | 2850 | 30 | 1600 |
7782 | 2450 | 10 | -400 |
7788 | 3000 | 20 | 550 |
7839 | 5000 | 10 | 2000 |
7844 | 1500 | 30 | -3500 |
7876 | 1100 | 20 | -400 |
7900 | 950 | 30 | -150 |
7902 | 3000 | 20 | 2050 |
7934 | 1300 | 10 | -1700 |
14 ligne(s) sélectionnée(s).
L’exemple précédent calcul la différence de salaire entre un employé et celui qui le précède directement dans empno, le suivant calcule l'inverse :
SQL> select empno,sal,deptno,sal-lead(sal,1)
2 over (order by empno) as trou
3 from emp order by empno;
EMPNO | SAL | DEPTNO | TROU |
7369 | 800 | 20 | -800 |
7499 | 1600 | 30 | 350 |
7521 | 1250 | 30 | -1725 |
7566 | 2975 | 20 | 1725 |
7654 | 1250 | 30 | -1600 |
7698 | 2850 | 30 | 400 |
7782 | 2450 | 10 | -550 |
7788 | 3000 | 20 | -2000 |
7839 | 5000 | 10 | 3500 |
7844 | 1500 | 30 | 400 |
7876 | 1100 | 20 | 150 |
7900 | 950 | 30 | -2050 |
7902 | 3000 | 20 | 1700 |
7934 | 1300 | 10 |
14 ligne(s) sélectionnée(s).
voire le post fonctions analytiques
0 comments:
Enregistrer un commentaire