当我这样做时,
SELECT id, gender, count(1)
FROM class_student
WHERE id = 1
GROUP BY gender
我明白了
id gender count
--------------------
1 female 10
1 male 5
我怎样才能得到这个?
id female male
---------------
1 10 5
下面的查询是执行此操作的正确方法吗?
SELECT
id,
(select count(1) from class_student
where id = 1 AND gender='female') AS female,
(select count(1) from class_student
where id = 1 AND gender='male') AS male
FROM class_student
GROUP BY id
最佳答案
你可以使用大小写选择
SELECT id
, sum(case when gender = 'male' then 1 else 0 end) male,
, sum(case when gender = 'female' then 1 else 0 end) female
FROM class_student
WHERE id = 1
GROUP BY id
关于mysql - 如何按组分隔两列计数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43730943/