Está en la página 1de 3

PRACTICA 4

Determine la validez de las tres siguientes afirmaciones. Seleccione Verdadero o Falso

1. Las funciones de grupo trabajan a través de muchas filas para generar un


resultado. Verdadero/Falso

2. Las funciones de grupo incluyen valores nulos en los cálculos.


Verdadero/Falso

3. La cláusula WHERE restringe las filas antes de incluirlas en un cálculo de


grupo. Verdadero/Falso

El departamento de recursos humanos necesita estos informes:

4. Busque el salario más alto, el más bajo, la suma y el salario medio de todos
los empleados. Etiquete las columnas como Maximum, Minimum, Sum y
Average, respectivamente. Redondee los resultados al siguiente número
entero. Guarde la sentencia SQL en un archivo de texto denominado
lab_04_04.sql.

SELECT ROUND(MAX(salary),0) "Maximum",


ROUND(MIN(salary),0) "Minimum",
ROUND(SUM(salary),0) "Sum",
ROUND(AVG(salary),0) "Average"
FROM employees;

5. Modifique la consulta en lab_04_04.sql para mostrar el salario mínimo, el


máximo, la suma y el salario medio para cada tipo de trabajo. Vuelva a
guardar lab_04_04.sql como lab_04_05.sql. Ejecute la sentencia en
lab_04_05.sql.

SELECT job_id, ROUND(MAX(salary),0) "Maximum",


ROUND(MIN(salary),0) "Minimum",
ROUND(SUM(salary),0) "Sum",
ROUND(AVG(salary),0) "Average"
FROM employees
GROUP BY job_id;

6. Escriba una consulta para mostrar el número de personas con el mismo


puesto.

SELECT job_id, COUNT(*)


FROM employees
GROUP BY job_id;
7. Determine el número de supervisores sin listarlos. Etiquete la columna
como Number of Managers. Indicación: Utilice la columna MANAGER_ID
para determinar el número de supervisores.

SELECT COUNT(DISTINCT manager_id) "Number of Managers"


FROM employees;

8. Busque la diferencia entre el salario más alto y el más bajo. Etiquete la


columna como DIFFERENCE.

SELECT MAX(salary) - MIN(salary) DIFFERENCE


FROM employees;

9. Cree un informe para mostrar el número de supervisor y el salario del


empleado peor pagado de ese supervisor. Excluya a los empleados cuyo
supervisor no se conozca. Excluya los grupos en los que el salario mínimo
sea 6.000 dólares o menos. Clasifique la salida en orden descendente de
salario.

SELECT manager_id, MIN(salary)


FROM employees
WHERE manager_id IS NOT NULL
GROUP BY manager_id
HAVING MIN(salary) > 6000
ORDER BY MIN(salary) DESC;

10. Cree una consulta que muestre el número total de empleados y, de dicho
total, el número de empleados contratados en 1995, 1996, 1997 y 1998.
Cree las cabeceras de columna adecuadas.

SELECT COUNT(*) total,


SUM(DECODE(TO_CHAR(hire_date,'YYYY'),2005,1,0))"2005",
SUM(DECODE(TO_CHAR(hire_date,'YYYY'),2006,1,0))"2006",
SUM(DECODE(TO_CHAR(hire_date,'YYYY'),2007,1,0))"2007",
SUM(DECODE(TO_CHAR(hire_date,'YYYY'),2008,1,0))"2008"
FROM employees;
11. Cree una consulta de matriz para mostrar el trabajo, el salario de dicho
puesto basado en el número de departamento y el salario total de ese
puesto de los departamentos 20, 50, 80 y 90, y proporcione una cabecera
apropiada a cada columna.

SELECT job_id "Job",


SUM(DECODE(department_id, 20, salary)) "Dept 20",
SUM(DECODE(department_id, 50, salary)) "Dept 50",
SUM(DECODE(department_id, 80, salary)) "Dept 80",
SUM(DECODE(department_id, 90, salary)) "Dept 90",
SUM(salary) "Total"
FROM employees
GROUP BY job_id;

También podría gustarte