【问题标题】:Get number of projects and average completion rate获取项目数量和平均完成率
【发布时间】:2011-11-16 23:33:26
【问题描述】:

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

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

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

谢谢

【问题讨论】:

    标签: mysql


    【解决方案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
    );
    

    我已经编辑了上面建议的查询以匹配。

    【讨论】:

    • 哇,太棒了!这些字段是:rowID PRIMARY INT、project_id INT 和完成 TINYINT。没有一个是 NULL。
    猜你喜欢
    • 2013-12-07
    • 2012-08-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-06-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多