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都会导致该用户不被计数
      • 请仅打开“完全分组方式”

      请不要回滚好的编辑,Raj。我有。请不要把好的编辑退回去,拉杰。我有。