|
Ejemplos de SQL - nivel medio |
Para poder trabajar con estos ejemplos deber�s tener creadas las tablas de demostraci�n. Para obtener el fichero que las crea autom�ticamente haz click aqu�.
1.- Encuentre los empleados que ganen mas que
el salario medio de su propio departamento
2 from emp
3 group by deptno,ename,sal
4 having sal>(select avg(sal)
5 from emp);
ENAME DEPTNO SAL
---------- --------- ---------
CLARK 10 2450
KING 10 5000
FORD 20 3000
JONES 20 2975
SCOTT 20 3000
BLAKE 30 2850
2 .- �qu� empleados ganan menos del 30% del presidente?
1 select ename
2 from emp
3 where sal<(select sal*0.3
4 from emp
5
where job='PRESIDENT');
ENAME
----------
MARTIN
JAMES
WARD
SMITH
ADAMS
MILLER
3 .- Utilice Selects anidadas
para determinar los nombres de los empleados que tienn el nombre(S) mas
largo(S)
1
select ename
2 from emp
3
where length (rtrim(ename,' '))
4
in (select max(length(rtrim(ename,' '))) from emp)
ENAME
----------
MARTIN
TURNER
MILLER
4 .- Seleccione el nombre y empleo de cada
empleado que tenga un jefe. Tambi�n liste el nombre y empleo del jefe de dichos
empleados
1 select ename,job
2 from emp
3 where empno in (select mgr
4 from emp);
ENAME JOB
---------- ---------
JONES MANAGER
BLAKE MANAGER
CLARK MANAGER
SCOTT ANALYST
KING PRESIDENT
FORD ANALYST
5 .- Muestre los nombres y salarios de los
empleados que ganan mas que sus jefes
1 select a.ename,a.sal
2 from emp a,emp b
3 where a.mgr=b.empno
4 and a.sal>b.sal
ENAME SAL
---------- ---------
FORD 3000
SCOTT 3000
6 .- Encuentre todos los empleados que tienen
el mismo trabajo que Jones
1 select ename
2 from emp
3 where job=(select job
4 from emp
5 where ename='JONES')
ENAME
----------
BLAKE
CLARK
JONES
7 .- Listado de empleados que tienen un salario mayor que el de alg�n
vendedor
1 select ename
2 from emp
3 where sal >all(select sal
4 from emp
5 where job='SALESMAN')
ENAME
----------
KING
BLAKE
CLARK
JONES
FORD
SCOTT
8 .- Nombre, deptno, empleo y salario del empleado mejor pagado de cada
deptno
1 select deptno,ename,job,sal
2 from emp
3 where sal in(select max (sal)
4 from emp
5 group by deptno)
DEPTNO ENAME JOB SAL
--------- ---------- --------- ---------
30 BLAKE MANAGER 2850
20 FORD ANALYST 3000
20 SCOTT ANALYST 3000
10 KING PRESIDENT 5000
9 .- Salario medio de cada puesto de trabajo
en aquellas categorias cuyo salario medio sea superior al salario medio de la empresa
1 select avg(sal)
2 from emp
3 where sal >(select avg(sal)
4 from emp);
AVG(SAL)
---------
3212,5
10 .- Departamentos que tengan al menos dos administrativos (CLERK).
1 select dname, count (job)
2 from dept, emp
3 where dept.deptno=emp.deptno
4 and job='CLERK'
5 group by dname
6 having count(job)>=2
DNAME COUNT(JOB)
-------------- ----------
RESEARCH 2
11 .- Salario medio por departamento, excluyendo a los managers y al
presidente, ordenado descendentemente
por salario medio
1 select avg (sal),dname
2 from dept,emp
3 where dept.deptno=emp.deptno
4 and job not in ('PRESIDENT','MANAGER')
5 group by dname
6 order by avg (sal) desc
AVG(SAL) DNAME
-------- --------------
1975 RESEARCH
1310 SALES
1300 ACCOUNTING
1 select avg(sal),min(sal),max(sal)
2 from emp
3 group by job
4 having job in ('MANAGER','CLERK')
5 order by avg(sal)
AVG(SAL) MIN(SAL) MAX(SAL)
--------- --------- ---------
1037,5 800 1300
2758,3333 2450 2975
13 .- Número de empleados contratados por año y departamento.
1 select count (ename)
2 from emp
3 order by hiredate,deptno
COUNT(ENAME)
------------
14
14 .- Lista todos los empleados con el mismo trabajo y salario que Ford
1 select ename
2 from emp
3 where job=(select job
4 from emp
5 where ename='FORD')
6 and sal =(select sal
7 from emp
8 where ename ='FORD');
ENAME
----------
FORD
SCOTT
15.- ¿Qué empleados trabajan en NEW YORK?
1 select ename
2 from emp,dept
3 where emp.deptno=dept.deptno
4 and loc='NEW YORK';
ENAME
----------
KING
CLARK
MILLER
16 .- ¿Cuál es el empleado mejor pagado por departamento?
1 select max(sal),deptno
2 from emp
3 group by deptno;
MAX(SAL) DEPTNO
--------- ---------
5000 10
3000 20
2850 30
17.- Seleccione el nombre, empleo y salario de las personas del departamento 20, que tengan el mismo empleo que las personas del departamento 30, ordenados por salario.
1 select ename ,job,sal
2 from emp
3 where deptno='20'
4 and job in (select job
5 from emp
6 where deptno='30');
ENAME JOB SAL
---------- --------- ---------
SMITH CLERK 800
ADAMS CLERK 1100
JONES MANAGER 2975
18 .- Encuentre el nombre, empleo ,número de departamento y salario de cada empleado que gane igual que Jones o gane igual o mas que ford
1 select ename ,job,deptno,sal
2 from emp
3 where sal=(select sal
4 from emp
5 where ename='JONES')
6 or sal >=(select sal
7 from emp
8 where ename='FORD')
ENAME JOB DEPTNO SAL
---------- --------- --------- ---------
KING PRESIDENT 10 5000
JONES MANAGER 20 2975
FORD ANALYST 20 3000
SCOTT ANALYST 20 3000
19 .- Encontrar el nombre ( en orden alfabético ) y trabajo de los empleados que viven en chicago con el mosmo trabajo que ALLEN.
1 select ename, job
2 from emp, dept
3 where dept.loc='CHICAGO'
4 and job=(select job
5 from emp
6 where ename='ALLEN');
ENAME JOB
---------- ---------
MARTIN SALESMAN
ALLEN SALESMAN
TURNER SALESMAN
WARD SALESMAN
20 .- Empleados que ingresaron despues del 12 de junio de 1981
1 select ename
2 from emp
3 where hiredate > '12/06/81';
ENAME
----------
KING
MARTIN
TURNER
JAMES
FORD
SCOTT
ADAMS
MILLER
A PROGRAMAR � 2002. All Rights Reserved.