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

   1  select ename, deptno,sal

  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

 

12 .- Salario medio, mínimo y máximo de las categorías de administrativos y managers ordenados por salario medio.

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

 

 


VOLVER

A PROGRAMAR � 2002. All Rights Reserved.

Hosted by www.Geocities.ws

1