我有一個機智的用戶。 我想收集女孩和男孩,並顯示它們的數量。 我這樣做:如何顯示不同列中的一個表的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,因此不需要大小寫表達式或任何東西。