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áusula GROUP 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

SELECT

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)