获得项目数量和平均完成率

时间:2011-11-16 23:33:27

标签: mysql

我有一个包含一些项目数据的表格。一列包含“完成%”。默认情况下,该值设置为0.构造mySQL查询并编写代码以获取以下3个值的最佳方法是什么:

  • 总用户数(每行WHERE PROJECT = 5)
  • 参与者(WHERE PROJECT = 5并完成!= 0)
  • 平均完成率(参与者百分比的平均值)

我认为我不能在一个查询中完成所有操作......

由于

1 个答案:

答案 0 :(得分:1)

SELECT project_id,
  COUNT(*) AS total_users,
  COUNT(IF(completion != 0, rowID, NULL)) AS participants,
  AVG(IF(completion != 0, completion, NULL)) AS average_completion_rate
FROM Projects
WHERE project_id = 5
GROUP BY project_id;

如果您运行表格的SHOW CREATE TABLE并将其包含在您的问题中,将会有所帮助。


评论:所以听起来你的桌子是这样的:

CREATE TABLE Projects (
  rowID         INT PRIMARY KEY,
  project_id    INT,
  completion    TINYINT
);

我已将上面建议的查询编辑为匹配。