M2 - Bases de dades / Exercicis UF2: Llenguatges SQL / Solucions T5-HR

De wikiserver
La revisió el 14:44, 13 nov 2017 per Rsort (Discussió | contribucions) (Es crea la pàgina amb «Determine la validez de las tres sentencias siguientes. Seleccione Verdadero o Falso. 1) Las funciones de grupo funcionan en varias filas para producir un resultado po...».)
(dif) ← Versió més antiga | Versió actual (dif) | Versió més nova → (dif)
Dreceres ràpides: navegació, cerca

Determine la validez de las tres sentencias siguientes. Seleccione Verdadero o Falso. 1) Las funciones de grupo funcionan en varias filas para producir un resultado por grupo. 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 los siguientes informes: 4) Encontrar el valor más alto, el valor más bajo, la suma y la media del salario de todos los empleados. Etiquete las columnas como Maximum, Minimum, Sum y Average, respectivamente. Redondee los resultados al número entero más cercano. Guarde la sentencia SQL como lab_05_04.sql. Ejecute la consulta. SELECT ROUND(MAX(salary),0) ROUND(MIN(salary),0) ROUND(SUM(salary),0) ROUND(AVG(salary),0) FROM employees; "Maximum", "Minimum", "Sum", "Average" y m e d a 5) Modifique la consulta del archivo lab_05_04.sql para mostrar el valor mínimo, el valor máximo, la suma y la media del salario de cada tipo de cargo. Vuelva a guardar lab_05_04.sql como lab_05_05.sql. Ejecute la sentencia en el archivo lab_05_05.sql. SELECT job_id, ROUND(MAX(salary),0) ROUND(MIN(salary),0) ROUND(SUM(salary),0) ROUND(AVG(salary),0) FROM employees GROUP BY job_id; "Maximum", "Minimum", "Sum", "Average" e l c a r O ly & On l a e n r s e t U n I c A 6) Escriba una consulta para mostrar el número de personas con el mismo cargo. SELECT job_id, COUNT(*) FROM employees GROUP BY job_id; Generalice la consulta para preguntar al usuario del departamento de recursos humanos cuál es su puesto. Guarde el script en un archivo denominado lab_05_06.sql. Ejecute la consulta. Introduzca IT_PROG cuando se le solicite y haga clic en OK. e l c SELECT job_id, COUNT(*) FROM employees WHERE job_id = '&job_title' GROUP BY job_id;

7) Determine el número de gestores sin enumerarlos en una lista. Etiquete la columna como Number of Managers. Indicación: utilice la columna MANAGER_ID para determinar el número de gestores. SELECT COUNT(DISTINCT manager_id) "Number of Managers" FROM employees; 8) Busque la diferencia entre los salarios más altos y más bajos. Etiquete la columna como DIFFERENCE. SELECT FROM MAX(salary) - MIN(salary) DIFFERENCE employees; Si tiene tiempo, realice los siguientes ejercicios: 9) Cree un informe para mostrar el número de gestor y el salario del empleado con menor sueldo de ese gestor. Excluya a cualquier trabajador del que desconozca su gestor. Excluya cualquier grupo en el que el salario mínimo sea 6.000 dólares o menos. Ordene la salida en orden descendente de salarios. SELECT FROM WHERE GROUP BY HAVING ORDER BY manager_id, MIN(salary) employees manager_id IS NOT NULL manager_id MIN(salary) > 6000 MIN(salary) DESC; Si desea superarse a sí mismo, complete los siguientes ejercicios: y m e d a c A 10) Cree una consulta que muestre el número total de empleados y, de ese total, el número de empleados contratados en 1995, 1996, 1997 y 1998. Cree las cabeceras de columna adecuadas. SELECT e l c a r O ly & On l a e n r s e t U n I COUNT(*) total, SUM(DECODE(TO_CHAR(hire_date, 'YYYY'),1995,1,0))"1995", SUM(DECODE(TO_CHAR(hire_date, 'YYYY'),1996,1,0))"1996", SUM(DECODE(TO_CHAR(hire_date, 'YYYY'),1997,1,0))"1997", SUM(DECODE(TO_CHAR(hire_date, 'YYYY'),1998,1,0))"1998" FROM employees;

11) Cree una consulta de matriz para mostrar el cargo, el salario de ese cargo según el número de departamento y el salario total del cargo para los departamentos 20, 50, 80 y 90, proporcionando a cada columna una cabecera adecuada. SELECT job_id "Job", SUM(DECODE(department_id SUM(DECODE(department_id SUM(DECODE(department_id SUM(DECODE(department_id SUM(salary) "Total" FROM employees GROUP BY job_id; , , , , 20, 50, 80, 90, salary)) salary)) salary)) salary)) "Dept "Dept "Dept "Dept 20", 50", 80", 90",