Mysql 所有用户和未在同一查询中填写表单的用户的SQL查询
我有一个包含以下字段的表Mysql 所有用户和未在同一查询中填写表单的用户的SQL查询,mysql,Mysql,我有一个包含以下字段的表 UserId, Username, Category, filledform 我想要一个查询,应该检索有多少人填写了表单类别 输出应该是这样的 Category Usercountfilled totalnumberofusers 我尝试了以下查询 Select Category, count(Category) from tablename where filledform !=' ' 但是我也希望在同一个查询中得到该类别的totalnumberofuse
UserId, Username, Category, filledform
我想要一个查询,应该检索有多少人填写了表单类别
输出应该是这样的
Category Usercountfilled totalnumberofusers
我尝试了以下查询
Select Category, count(Category) from tablename where filledform !=' '
但是我也希望在同一个查询中得到该类别的
totalnumberofusers
,这样我就可以知道有多少人已经填写了表单,还有多少人仍在等待分类。所以filledform在未填写时是一个空格,在填写时不是一个空格
SELECT
category,
COUNT(CASE WHEN filledform !=' ' THEN 'x' END) as UserCountFilled,
COUNT(*) as TotalNumberOfUsers
FROM tablename
GROUP BY category
有几点:
- 当filledform不是空格时,case when将返回“x”,当它是空格时,将返回null。COUNT对X进行计数并忽略空值
- 使用COUNT(*)not COUNT(category),除非category不为NULL-category中的任何NULL都会导致该用户不被计数
- 请仅打开“完全分组方式”
- 所以filledform在未填充时是一个空格,而在填充时不是一个空格
SELECT
category,
COUNT(CASE WHEN filledform !=' ' THEN 'x' END) as UserCountFilled,
COUNT(*) as TotalNumberOfUsers
FROM tablename
GROUP BY category
有几点:
- 当filledform不是空格时,case when将返回“x”,当它是空格时,将返回null。COUNT对X进行计数并忽略空值
- 使用COUNT(*)not COUNT(category),除非category不为NULL-category中的任何NULL都会导致该用户不被计数
- 请仅打开“完全分组方式”