3 votes

TOTAL en cours d'exécution ORACLE SQL et total journalier en utilisant la fonction de fenêtre

À partir de la table EMPLOYEE, je veux regrouper le nombre d'enregistrements (employés embauchés) ET avoir également le TOTAL cumulé par jour. Le format de l'entrée est le suivant :

rownum  Hired\_date\_time
1       1/10/2012 11:00
2       1/10/2012 13:00
3       20/11/2012 10:00
4       20/11/2012 15:00
5       20/11/2012 16:00
6       30/12/2012 1:00

La sortie souhaitée :

Hired\_date.......Hired\_per\_day.........TOTAL\_number\_of\_employees
1/10/2012 ...................2 ........2
20/11/2012 ..................3 ........5
30/12/2012 ..................1 ....... 6

Pas de problème pour le regroupement PAR JOUR :

select  trunc(Hired_date_time) as "Hired_date" , 
        count(*) as "Hired_per_day"
from employee
group by trunc(Hired_date_time)
order by trunc(Hired_date_time);

Question : comment puis-je avoir un total cumulé (dans la dernière colonne) en utilisant la fonction de fenêtrage

8voto

be here now Points 4707
select trunc(embauché), 
       count(*) embauchés_aujourd'hui,       
       sum(count(*)) over (order by trunc(embauché)) as total_cumulé
from emp
group by trunc(embauché)

http://sqlfiddle.com/#!4/4bd36/9

2voto

a_horse_with_no_name Points 100769
select trunc(hire_date),
       count(*) over (partition by trunc(hire_date)) as hired_per_day,
       count(*) over (order by hire_date) as total_number_of_employees
from employee
order by trunc(hire_date)

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X