首頁  >  問答  >  主體

mysql - [SQL]如何统计每班男女生人数?

表User有字段:name,sex,classId,比如有如下记录:
a, 男, 1
b, 男, 1
c, 女, 1
d, 女, 1
e, 男, 2
f, 男, 2

要求查出如下这样的记录(每个班男、女各有几人):
classId 男 女
1 2 2
2 1 1

请问要怎样写?
如果只是查出每个班的男生人数就会:
SELECT class, COUNT(*) AS '男' FROM t_uu WHERE sex='男' GROUP BY class;

大家讲道理大家讲道理2717 天前6764

全部回覆(3)我來回復

  • ringa_lee

    ringa_lee2017-04-17 12:06:51

    指令:

    SELECT class_id, SUM(sex = '男') AS male, SUM(sex = '女') AS female FROM student
    GROUP BY class_id
    
    

    結果:

    原始資料:

    select * from student;
    

    回覆
    0
  • PHP中文网

    PHP中文网2017-04-17 12:06:51

    資料不對吧,classid為2的話應該只有2個男生o(╯□╰)o

    回覆
    0
  • 黄舟

    黄舟2017-04-17 12:06:51

    我的答案建立在樓主的認知上,當然我也是:
    先查出男生的狀況,如t1:

    |class_id|male|
    |:---:|:---:|
    |1|2|
    |2|1|
    然後查出女生的狀況,如t2:

    class_id female
    1 2
    2 1

    最後把兩張錶鍊起來:select t1.class_id,male,female from t1,t2 where t1.class_id = t2.class_id

    沒有試,但大概意思是對的吧

    回覆
    0
  • 取消回覆