3

EMPLOYEEテーブルから、レコード数(採用された従業員)をグループ化し、1日あたりの合計を実行したいと思います。入力の形式は次のようになります。

rownum Hired_date_time
12012年1月10日11:00
22012年1月10日13:00
32012年11月20日10:00
42012年11月20日15:00
52012年11月20日16:00
62012年12月30日1:00

目的の出力:

Hired_date ....... Hired_per_day ......... TOTAL_number_of_employees
2012年1月10日...................2........ 2 ........ 2
2012年11月20日..................3........ 5
2012年12月30日..................1....... 6

1日あたりのグループ化に問題はありません。

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);

質問:ウィンドウ関数を使用して(最後の列の)現在の合計を取得するにはどうすればよいですか?

4

2 に答える 2

8
select trunc(hired), 
       count(*) hired_today,       
       sum(count(*)) over (order by trunc(hired)) as running_total
from emp
group by trunc(hired)

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

于 2012-12-04T12:35:02.050 に答える
2
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)
于 2012-12-04T12:30:03.090 に答える