我有这张桌子,我需要计算每天开始的项目(工作)数量。
job start end 1 01-01-2013 04-01-2013 2 01-01-2013 02-01-2013 3 01-01-2013 03-01-2013 4 03-01-2013 04-01-2013 5 03-01-2013 04-01-2013 6 03-01-2013 04-01-2013 ...
我想知道我每天开始的工作量是多少.. / 我的意思是每天有多少工作开始......
date count 01-01-2013 3 02-01-2013 3 03-01-2013 5 04-01-2013 4 05-01-2013 0 ...
答案 0 :(得分:2)
select start, count(*) as jobs_per_day
from your_table
group by start
但是这不会返回您没有创建任何工作的日期的记录。
答案 1 :(得分:0)
以下适用于postgresql
with dates as (
select aday::date
from generate_series((select min(start) from your_table),
(select max(end) from your_table),
'1 day'::interval) aday
), flat as (
select *
from dates, your_table
where dates.aday between your_table.start and your_table.end
)
select
aday,
count(*) as count
from flat
group by aday
order by aday
;
第一个CTE会生成一系列日期,这些日期可能必须在另一个RDBMS中以不同方式完成。
答案 2 :(得分:-1)
选择start作为日期,count(*)作为table_name的计数 其中start_date> ="您的开始日期"和end_date< ="你的结束日期" 开始分组;