我有一个包含一些项目数据的表格。一列包含“完成%”。默认情况下,该值设置为0.构造mySQL查询并编写代码以获取以下3个值的最佳方法是什么:
我认为我不能在一个查询中完成所有操作......
由于
答案 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
);
我已将上面建议的查询编辑为匹配。