计算完成的任务比率

时间:2014-04-02 06:38:08

标签: sql

我有一个带有NAMES和STATUS的表,其中C(已完成)和N(未完成)状态。我想检查每个名称没有完成多少个任务。我尝试了以下代码,它将返回所有' 0'值:

选择名称,(从alteon中选择count =' n')选择计数(状态)/(从alteon中选择计数(状态))来自alteon group by name;

我希望结果为未完成/总分配,其中总分配=完成+未完成。

如前所述,我得到的价值是' 0'在每个员工姓名旁边。

3 个答案:

答案 0 :(得分:0)

以下是给出结果的查询,如上所述。

 select count(status)as Total_assigned,
 sum(IF(status='n', 1, 0)) as Not_completed,name
 from alteon group by name ;

以下是sqlfiddle

答案 1 :(得分:0)

我认为以下查询可以满足您的需求:

select name,
       sum(case when status = 'n' then 1 else 0 end) as n_status,
       avg(case when status = 'n' then 1.0 else 0 end) as n_status_ratio
from alteon;

答案 2 :(得分:0)

您不必使用多个select语句。使用CASE计算未完成的任务。

select name, count(case when status = 'n' then 1 else null end)/count(status)
  from alteon
group by name;

sqlfiddle