Apuntes
Sin título
Contenido del apunte (1)
Página 1
--Mostre o código do empregado, o código do departamento, o salário do empregado e o salário médio de todos os funcionários
--daquele departamento. Dica use a função AVG em conjunto com OVER (PARTITION BY)
select * from emp;
select empno, deptno, sal,
avg(sal) over (partition by deptno)
from emp;
-- Mostre o código do empregado, o nome do empregado, o cargo do empregado, o salário do empregado
-- e o salário listado na linha anterior e a diferença entre o salário e o salário da linha anterior.
-- Dica: use a função analítica LAG.
select empno, ename, job, sal,
lag(sal, 1, 0) over (order by sal) as sal_anterior,
sal - lag(sal, 1, 0) over (order by sal) as diferenca_sal
from emp;
-- Mostre o código do empregado, o nome do empregado, o cargo do empregado, o salário do empregado e o
-- salário listado na próxima linha e a diferença entre o salário e o salário da próxima linha.
-- Dica: use a função analítica LEAD.
select empno, ename, job, sal,
lead(sal,1) over (order by sal),
lead(sal,1) over (order by sal) - sal as diferenca_sal
from emp;
-- Mostre o código do empregado, o código do departamento, o salário do
-- empregado e o primeiro salário listado em cada departamento. Dica: use a
-- função analítica FIRST_VALUE
select empno, deptno, sal,
first_value(sal) over (partition by deptno order by sal asc) as primeiro_sal
from emp;
-- Mostre o código do empregado, o código do departamento, o salário do empregado, o salário do funcionário da linha anterior
-- e o salário do funcionário da próxima linha. Dica: Use as funções FIRST_VALUE e LAST_VALUE
select empno, deptno, sal,
lag(sal,1,null) over (partition by deptno order by sal) as anterior_sal,
lead(sal,1) over (partition by deptno order by sal) as primeiro_sal
from emp;
--Calcule, para cada empregado na tabela emp, o salário médio dos funcionários subordinados
-- ao mesmo gerente que foram contratados antes e depois do funcionário:
select empno, deptno,sal,
avg(sal) over ( partition by deptno order by sal ) as medio_sal ,
lag(sal,1,null) over (partition by deptno order by sal) as anterior_sal,
lead(sal,1) over (partition by deptno order by sal) as primeiro_sal
from emp;
--Determine a ordem em que funcionários se juntaram aos seus respectivos departamentos.
--Também inclua os funcionários que os precederam e os sucederam.
select * from emp;
select empno, ename, deptno, hiredate,
lag(hiredate,1,null) over (partition by deptno order by hiredate) as anterior_hiredate,
lead(hiredate,1) over (partition by deptno order by hiredate) as next_hiredate
from emp order by hiredate;
Información
- Descripción
- Apunte sobre Sin título, creado por Millena Dias el 19/08/2019.
- Creado por
- Millena Dias · ago 2019
- Actualizado
- 19 ago 2019
- Visitas
- 0
- Valoración