创建表CREATE TABLE admit ( id int(11) NOT NULL AUTO_INCREMENT, year int(255) DEFAULT NULL COMMENT '入学年度', num int(255) DEFAULT NULL COMMENT '录取学生人数', stu_len varchar(255) DEFAULT NULL COMMENT '学生学制', PRIMARY KEY (id) ) ENGINE=InnoDB AUTO_INCREMENT=5 DEFAULT CHARSET=utf8mb4 COMMENT='录取人数';并插入数据insert into admit(id,year,num,stu_len) values(1,2018,2000,3),(2,2019,2000,3),(3,2020,1000,4),(4,2020,2000,3);根据以上数据计算出每年在校人数,写出SQL语句:
时间: 2023-09-19 15:08:11 浏览: 60
为了计算每年在校人数,需要按照入学年份分组,并计算每个年份的学生总数。可以使用以下SQL语句:
```
SELECT year, SUM(num) AS total_students
FROM admit
GROUP BY year;
```
该语句将admit表按照year列分组,并计算每个年份的学生总数。结果集中包括每年在校学生的总数。执行该语句,可以得到以下结果:
```
+------+----------------+
| year | total_students |
+------+----------------+
| 2018 | 2000 |
| 2019 | 2000 |
| 2020 | 3000 |
+------+----------------+
```
因为2020年有两个入学年份,所以总人数为3000。
相关问题
1.有一个录取学生人数表,记录的是每年录取学生人数和入学学生的学制 以下是表结构: CREATE TABLE `admit` ( `id` int(11) NOT NULL AUTO_INCREMENT, `year` int(255) DEFAULT NULL COMMENT '入学年度', `num` int(255) DEFAULT NULL COMMENT '录取学生人数', `stu_len` varchar(255) DEFAULT NULL COMMENT '学生学制', PRIMARY KEY (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=5 DEFAULT CHARSET=utf8mb4 COMMENT='录取人数';
这个表结构看起来不错,但是需要注意的是学制这个字段最好不要用 varchar 类型,因为它只会有固定的几个取值(如:本科、硕士、博士等),所以可以考虑使用枚举类型(enum)或者整数类型(int)。这样可以避免插入非法的数据。另外,year 和 num 这两个字段的长度也可以适当缩小,比如 year 可以设置为 int(4),num 可以设置为 int(5)。这样能够节省存储空间,提高查询效率。
1.有一个录取学生人数表,记录的是每年录取学生人数和入学学生的学制 以下是表结构: CREATE TABLE `admit` ( `id` int(11) NOT NULL AUTO_INCREMENT, `year` int(255) DEFAULT NULL COMMENT '入学年度', `num` int(255) DEFAULT NULL COMMENT '录取学生人数', `stu_len` varchar(255) DEFAULT NULL COMMENT '学生学制', PRIMARY KEY (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=5 DEFAULT CHARSET=utf8mb4 COMMENT='录取人数'; year表示学生入学年度 num表示对应年度录取学生人数 stu_len表示录取学生的学制 说明:例如录取年度2018学制3,表示该批学生在校年份为2018~2019、2019~2020、2020~2021 以下是示例数据: id year num stu_len 1 2018 2000 3 2 2019 2000 3 3 2020 1000 4 4 2020 2000 3 根据以上示例计算出每年在校人数,写出SQL语句:
你可以使用以下SQL语句来计算每年在校人数:
```sql
SELECT year, SUM(num) AS total_students
FROM admit
GROUP BY year
```
这条SQL语句将根据年份对学生人数进行求和,并返回每年的在校人数总数。请确保将表名`admit`替换为你的实际表名。