繁体   English   中英

如何按组分隔两列计数?

[英]How can I separate two columns of count by group by?

当我这样做时,

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 

您可以使用CASES

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;

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM