我想根据一个字段的计数对记录进行分类。 我的代码是:
select `posts`.`post_customer_fs_id` AS `post_customer_fs_id`,count(`post_id`) AS `open_post_count`,
CASE count(`post_id`)
WHEN count(`post_id`)=1 THEN 'A'
WHEN count(`post_id`)>1 THEN 'B'
END AS AAA
from `posts` where (`posts`.`post_status` = '3') AND posts.post_type_id='1' group by `posts`.`post_customer_fs_id` ;
出于某种原因,对于 COUNT 1 的记录,我收到 A,但对于 COUNT 大于 1 的记录,我收到 NULL。 post_id 是一个 INTEGER 字段。 任何帮助将不胜感激!
最佳答案
在
CASE count(post_id)
WHEN count(post_id)=1 THEN 'A'
您正在将 count(post_id)
与 count(post_id)=1
进行比较,后者的结果是 true 或 false,在 MySQL 中等于 1 或 0。你想要
CASE
WHEN count(post_id)=1 THEN 'A'
相反。
关于mysql - CASE 语句中的 COUNT?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44409362/