在student表中统计每个专业的男女生人数,每个专业的总人数和所有学生总人数
时间: 2024-02-03 19:12:21 浏览: 66
可以使用如下 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` 则用于在结果中额外添加一行,统计所有专业的数据。
相关问题
C语言统计学生男女人数,总人数,平均年龄
假设学生信息已经存储在一个结构体数组中,结构体包含三个成员变量:性别、年龄和姓名。统计学生男女人数、总人数和平均年龄的C语言代码如下:
```c
#include <stdio.h>
struct student {
char sex;
int age;
char name[20];
};
int main() {
struct student stu[100]; // 假设有100个学生
int n, i, male_num = 0, female_num = 0, total_age = 0;
float avg_age;
printf("请输入学生人数:");
scanf("%d", &n);
for (i = 0; i < n; i++) {
printf("请输入第%d个学生的信息(性别、年龄、姓名):", i + 1);
scanf("%c %d %s", &stu[i].sex, &stu[i].age, stu[i].name);
// 统计男女人数和总年龄
if (stu[i].sex == 'M') {
male_num++;
} else if (stu[i].sex == 'F') {
female_num++;
}
total_age += stu[i].age;
}
// 计算平均年龄
avg_age = (float) total_age / n;
// 输出结果
printf("男生人数:%d\n", male_num);
printf("女生人数:%d\n", female_num);
printf("总人数:%d\n", n);
printf("平均年龄:%.2f\n", avg_age);
return 0;
}
```
以上代码中,`struct student`定义了一个学生结构体,包含了性别、年龄和姓名三个成员变量。在`main()`函数中,首先输入学生人数,然后通过循环依次输入每个学生的信息,并进行男女人数和总年龄的统计。最后计算平均年龄并输出结果。
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;
```
注意:以上查询均只是示例,具体的查询语句需要根据数据库表结构和实际数据进行调整。