数据库中查询一个男生比女生多的班级数?怎么用查询? 求代码。
答案:2 悬赏:20
解决时间 2021-02-14 23:34
- 提问者网友:饮鸿
- 2021-02-14 08:21
数据库中查询一个男生比女生多的班级数?怎么用查询? 求代码。
最佳答案
- 二级知识专家网友:安稳不如野
- 2021-02-14 09:16
你没有说明数据库结构,假如数据库结构如下:
TB_ClASS(班级数据表,主键:class_id)
-------------------------
| class_id | class_name |
-------------------------
TB_STUDENTS(学生信息表,主键:student_id,外键:class_id)
-------------------------------
| student_id | sex | class_id |
-------------------------------
那么建议先按照班级建立视图,然后从视图中查询。
建立视图:
SELECt TB_STUDENT.class_id, TB1.male AS male, TB2.female
FROM TB_STUDENT LEFT OUTER JOIN
(SELECt class_id, COUNT(student_id) AS male
FROM TB_STUDENT AS TB_STUDENT_1
WHERe (student_sex = '男')
GROUP BY class_id) AS TB1 ON TB_STUDENT.class_id = TB1.class_id LEFT OUTER JOIN
(SELECt class_id, COUNT(student_id) AS female
FROM TB_STUDENT AS TB_STUDENT_2
WHERe (student_sex = '女')
GROUP BY class_id) AS TB2 ON TB_STUDENT.class_id = TB2.class_id
GROUP BY TB_STUDENT.class_id, TB1.male, TB2.female
得到如下视图形式:
class_sex_view
----------------------------
| class_id | male | female |
----------------------------
再用以下简单查询即可:
select count(class_id)
from class_sex_view
where male>female
TB_ClASS(班级数据表,主键:class_id)
-------------------------
| class_id | class_name |
-------------------------
TB_STUDENTS(学生信息表,主键:student_id,外键:class_id)
-------------------------------
| student_id | sex | class_id |
-------------------------------
那么建议先按照班级建立视图,然后从视图中查询。
建立视图:
SELECt TB_STUDENT.class_id, TB1.male AS male, TB2.female
FROM TB_STUDENT LEFT OUTER JOIN
(SELECt class_id, COUNT(student_id) AS male
FROM TB_STUDENT AS TB_STUDENT_1
WHERe (student_sex = '男')
GROUP BY class_id) AS TB1 ON TB_STUDENT.class_id = TB1.class_id LEFT OUTER JOIN
(SELECt class_id, COUNT(student_id) AS female
FROM TB_STUDENT AS TB_STUDENT_2
WHERe (student_sex = '女')
GROUP BY class_id) AS TB2 ON TB_STUDENT.class_id = TB2.class_id
GROUP BY TB_STUDENT.class_id, TB1.male, TB2.female
得到如下视图形式:
class_sex_view
----------------------------
| class_id | male | female |
----------------------------
再用以下简单查询即可:
select count(class_id)
from class_sex_view
where male>female
全部回答
- 1楼网友:星星坠落
- 2021-02-14 10:40
搜一下:数据库中查询一个男生比女生多的班级数?怎么用查询? 求代码。
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯