我有一个机智的用户。 我想收集女孩和男孩,并显示它们的数量。 我这样做:如何显示不同列中的一个表的mysql计数结果?
SELECT COUNT(`is_male`) AS 'boys' FROM `users` WHERE `is_male` = 1 UNION (SELECT COUNT(`is_male`) AS 'girls' FROM `users` WHERE `is_male` = 0)
但它显示一列结果“男孩”,我怎么能有2列“男孩”和“女孩”显示一排?
我有一个机智的用户。 我想收集女孩和男孩,并显示它们的数量。 我这样做:如何显示不同列中的一个表的mysql计数结果?
SELECT COUNT(`is_male`) AS 'boys' FROM `users` WHERE `is_male` = 1 UNION (SELECT COUNT(`is_male`) AS 'girls' FROM `users` WHERE `is_male` = 0)
但它显示一列结果“男孩”,我怎么能有2列“男孩”和“女孩”显示一排?
只需使用条件汇总:
SELECT SUM(is_male = 1) AS boys,
SUM(is_male = 0) as girls
FROM users ;
注:
您可以使用条件和
SELECT SUM(is_male = 1) AS boys,
SUM(is_male = 0) AS girls
FROM users
或计数,但随后的ELSE部分必须为NULL,因为COUNT计算所有非空值
SELECT count(case when is_male = 1 then 1 else null end) AS boys,
count(case when is_male = 0 then 1 else null end) AS girls
FROM users
这是有条件聚集:
SELECT SUM(is_male) AS boys,
SUM(is_male <> 1) AS girls
FROM users;
MySQL将布尔表达式评估为1和0,因此不需要大小写表达式或任何东西。