SQL запрос со всеми пользователями и не заполнившими форму в одном запросе - PullRequest
0 голосов
/ 01 мая 2020

У меня есть таблица со следующими полями

UserId, Username, Category, filledform 

Я хочу запрос, который должен получить количество заполненных форм по категориям.

Вывод должен быть примерно таким:

Category  Usercountfilled  totalnumberofusers

Я пытался выполнить следующий запрос

Select Category, count(Category) from tablename where filledform !=' '

Но я также хочу, чтобы totalnumberofusers этой категории в той же запрос, чтобы я знал, сколько человек заполнило форму и сколько еще ожидающих рассмотрения категорий.

Пожалуйста, помогите мне.

1 Ответ

2 голосов
/ 01 мая 2020

Таким образом, заполненная форма - это пробел, когда он не заполнен, а не пробел, когда он заполнен ...

SELECT 
  category, 
  COUNT(CASE WHEN filledform !=' ' THEN 'x' END) as UserCountFilled,
  COUNT(*) as TotalNumberOfUsers
FROM tablename
GROUP BY category 

Несколько моментов:

  • случай, когда вернется 'x', когда заполненная форма не является пробелом, и ноль, когда она есть. COUNT считает X и игнорирует нули
  • используйте COUNT (*), а не COUNT (категорию), если категория не NULL - любые нули в категории приведут к тому, что пользователь не будет засчитан
  • , пожалуйста, включите в режиме ТОЛЬКО ПОЛНАЯ ГРУППА ПО
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...