table A
序号 发生时间(年) 事件 是否完成(0/1) 负责人 ……
ID year Formset done person
1 2007 AAAA 0 tom
2 2007 BBBB 1 tom
3 2007 CCCC 0 tom
4 2007 DDDD 0 tom
5 2007 EEEE 1 rose
6 2007 FFFF 1 rose
7 2007 GGGG 1 rose
8 2007 FFFF 0 rose
9 2007 HHHH 0 tom…………
其中done字段0代表未完成,1代表已完成
现在我需要根据上面这张表统计出一下格式的结果:
年份 负责人 负责事件总数(a) 完成事件数(b) 效率(b/a)
2007 tom 5 1 0.2
2007 rose 4 3 0.75
请问如何写SQL啊???
拜托大家了!!!
序号 发生时间(年) 事件 是否完成(0/1) 负责人 ……
ID year Formset done person
1 2007 AAAA 0 tom
2 2007 BBBB 1 tom
3 2007 CCCC 0 tom
4 2007 DDDD 0 tom
5 2007 EEEE 1 rose
6 2007 FFFF 1 rose
7 2007 GGGG 1 rose
8 2007 FFFF 0 rose
9 2007 HHHH 0 tom…………
其中done字段0代表未完成,1代表已完成
现在我需要根据上面这张表统计出一下格式的结果:
年份 负责人 负责事件总数(a) 完成事件数(b) 效率(b/a)
2007 tom 5 1 0.2
2007 rose 4 3 0.75
请问如何写SQL啊???
拜托大家了!!!
select year 年份,
person 负责人,
sum(formset) 负责事件总数,
sum(done) 完成事件数,
round(sum(done) / sum(formset), 2) 效率
from tableA
group by year, person;
from (select year, person, count(*) c, decode(done, 1, count(done)) b
from a
group by year, person)
v1.person,
v1.formset ,
v2.f_formset ,
decode(v1.formset ,0,0,v2.f_formset /v1.formset )
from (select year,person,count(formset) formset from A group by year,person)v1,
(select year,person,count(formset) f_formset from A where done=1 group by year,person)v2
where v1.year=v2.year(+) and
v1.person=v2.person(+)
select year 年份,
person 负责人,
a 负责事件总数(a),
b 完成事件数(b),
b / a 效率(b / a)
from (select year, person, count(*) a, sum(done) b
from a
group by year, person)