Подсчет пустых текстовых полей в предложении CASE в MySQL - PullRequest
0 голосов
/ 18 марта 2020

Мой столбец содержит категории A, B, C или "пусто" (что означает, что запись не категоризирована).

Я хочу показать общее количество A, B и C и общее количество записей "Не классифицировано", и попробовал запрос ниже.

Это не работает, однако. Он показывает правильное количество A, B и C, но не количество неклассифицированных.

SELECT count(*) AS Quantity,
       CASE
           WHEN cf_ab_contacts.col_621 = '' THEN "Uncategorized"
           ELSE cf_ab_contacts.col_621  
       END AS `Category`
FROM ...
WHERE ...
GROUP BY `cf_ab_contacts`.`col_621`;

Спасибо за помощь.

Ответы [ 2 ]

0 голосов
/ 18 марта 2020

Мне очень жаль - но запрос работал должным образом - в моем разделе WHERE произошла ошибка, которая исключала пустые столбцы.

Спасибо Ankit за терпение.

Я не уверен, смогу ли я удалить эту тему - мне никогда не следовало публиковать ее.

0 голосов
/ 18 марта 2020

Учитывая Пустое, вы имеете в виду NULL, а не одно пробельное значение. Вы должны проверить условие с помощью предиката IS NULL -

SELECT count(*) AS Quantity,
       CASE
           WHEN cf_ab_contacts.col_621 IS NULL THEN "Uncategorized"
           ELSE cf_ab_contacts.col_621  
       END AS `Category`
FROM ...
WHERE ...
GROUP BY CASE
           WHEN cf_ab_contacts.col_621 IS NULL THEN "Uncategorized"
           ELSE cf_ab_contacts.col_621  
       END;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...