在student表中统计每个专业的男女生人数,每个专业的总人数和所有学生总人数
时间: 2024-02-03 07:12:21 浏览: 284
可以使用如下 SQL 语句实现:
```
SELECT
专业,
SUM(CASE WHEN 性别='男' THEN 1 ELSE 0 END) AS 男生人数,
SUM(CASE WHEN 性别='女' THEN 1 ELSE 0 END) AS 女生人数,
COUNT(*) AS 总人数
FROM student
GROUP BY 专业
WITH ROLLUP;
```
其中,`SUM(CASE WHEN 性别='男' THEN 1 ELSE 0 END)` 用于统计男生人数,`SUM(CASE WHEN 性别='女' THEN 1 ELSE 0 END)` 用于统计女生人数,`COUNT(*)` 统计总人数。`GROUP BY` 用于按照专业进行分组,`WITH ROLLUP` 则用于在结果中额外添加一行,统计所有专业的数据。
相关问题
在XSCJ 数据库中产生一个结果集,包括每个专业的男生人数、女生人数、总人数以及学生总人数。
要在XSCJ数据库中生成这样的结果集,通常需要执行一个SQL查询,假设我们有名为`scores`的表,其中有`gender`(性别)和`student_id`字段,而`student_info`表中包含了所有学生的详细信息。我们可以先计算每个专业内的男女人数,然后汇总到总人数。这里是一个示例查询:
```sql
SELECT
si.major AS '专业',
SUM(CASE WHEN scores.gender = '男' THEN 1 ELSE 0 END) AS '男生人数',
SUM(CASE WHEN scores.gender = '女' THEN 1 ELSE 0 END) AS '女生人数',
COUNT(DISTINCT scores.student_id) AS '总人数',
(SELECT COUNT(*) FROM student_info) AS '学生总人数'
FROM
scores
JOIN
student_info si ON scores.student_id = si.id
GROUP BY
si.major;
```
这个查询首先通过JOIN连接了`scores`和`student_info`表,然后根据专业分组并计算各专业的男女学生人数,最后统计每组的总人数以及整个数据库的学生总数。
MySQL以数据库user_db及数据表student、teacher、class、course、sc为基础(2)查询信息技术学院学生的姓名、性别、院系,列标题分别显示为“姓名”、“性别”、“院系”; (3)查询数据表中男生总人数和女生总人数; (4)查询每个院系的总人数;(
2)查询信息技术学院学生的姓名、性别、院系,列标题分别显示为“姓名”、“性别”、“院系”:
```sql
SELECT name AS '姓名', gender AS '性别', department AS '院系'
FROM student
WHERE department = '信息技术学院';
```
3)查询数据表中男生总人数和女生总人数:
```sql
SELECT gender, COUNT(*) AS '人数'
FROM student
GROUP BY gender;
```
4)查询每个院系的总人数:
```sql
SELECT department AS '院系', COUNT(*) AS '总人数'
FROM student
GROUP BY department;
```
注意:以上查询均只是示例,具体的查询语句需要根据数据库表结构和实际数据进行调整。
阅读全文