Databases
T01-008-01 GROUP BY
Enunciado
(EJERCICIO OPCIONAL)
Al igual que ocurría con la cláusula
ORDER BY, podemos incluir más de un criterio de agrupamiento en la cláusulaGROUP BY, simplemente, separando los distintos criterios de agrupamiento por comas.Ejemplo:
Vamos a ampliar el ejemplo anterior, de manera que
SELECT DEPARTMENT_ID, JOB_ID, AVG(SALARY) AS "SALARIO MEDIO"
FROM HR.employees
WHERE DEPARTMENT_ID IS NOT NULL
GROUP BY DEPARTMENT_ID, JOB_ID
ORDER BY DEPARTMENT_ID, JOB_ID
DEPARTMENT_ID JOB_ID SALARIO MEDIO 10 AD_ASST 4400 20 MK_MAN 13000 20 MK_REP 6000 30 PU_CLERK 2780 30 PU_MAN 11000 40 HR_REP 6500 50 SH_CLERK 3215 50 ST_CLERK 2785 50 ST_MAN 7280 ... ... ... Podemos observar como, en aquellos departamentos en los que hay más de un tipo de trabajo, se muestra un salario medio por cada uno de ellos.
Ejercicio:
¿A cuántos empleados se ha contratado cada mes desde el 2006?
Ordena el resultado por año y mes.
Para esta consulta, vas a necesitar utilizar la función de fecha EXTRACT, que permite extraer de una fecha, alguno de los datos que la componen (año, mes, día,...)
Tipo
Solución
SELECT EXTRACT(YEAR FROM HIRE_DATE) AS "ANYO", EXTRACT(MONTH FROM HIRE_DATE) AS "MES", COUNT(*)
FROM HR.EMPLOYEES
WHERE EXTRACT(YEAR FROM HIRE_DATE) >= 2006
GROUP BY EXTRACT(YEAR FROM HIRE_DATE), EXTRACT(MONTH FROM HIRE_DATE)
ORDER BY "ANYO", "MES"
Prueba
LibrerÃas (Onfly databases)

