lintcode-2069 · 查询每个教师授课学生人数最高的课程名称和上课人数
【摘要】 大家好,我是半夏👴,一个刚刚开始写文的沙雕程序员.如果喜欢我的文章,可以关注➕ 点赞 👍 加我微信:frontendpicker,邀你进群,一起学习交流前端,成为更优秀的工程师~关注公众号:半夏话前端,了解更多前端知识!点我探索新世界! 描述请编写 SQL 语句,从课程表 courses中查询每个教师授课学生人数最高的课程名称 name 和上课人数 student_count。表定义: ...
大家好,我是半夏👴,一个刚刚开始写文的沙雕程序员.如果喜欢我的文章,可以关注➕ 点赞 👍 加我微信:frontendpicker,邀你进群,一起学习交流前端,成为更优秀的工程师~关注公众号:半夏话前端,了解更多前端知识!点我探索新世界!
描述
请编写 SQL 语句,从课程表 courses
中查询每个教师授课学生人数最高的课程名称 name
和上课人数 student_count
。
表定义: courses (课程表)
列名 | 类型 | 注释 |
---|---|---|
id | int unsigned | 主键 |
name | varchar | 课程名称 |
student_count | int | 学生总数 |
created_at | date | 课程创建时间 |
teacher_id | int unsigned | 讲师 id |
**
- 查询返回列名需要与样例输出的列名大小写一致
- 如果输入数据为空,则返回 NULL
- 若一个教师有多节学生数的最大的课,则返回多节课
样例
样例 一
表内容: courses (课程表)
id | name | student_count | created_at | teacher_id |
---|---|---|---|---|
1 | Senior Algorithm | 880 | 2020-06-01 | 4 |
2 | System Design | 1350 | 2020-07-18 | 3 |
3 | Django | 780 | 2020-02-29 | 3 |
4 | Web | 340 | 2020-04-22 | 4 |
5 | Big Data | 700 | 2020-09-11 | 1 |
6 | Java P6+ | 1660 | 2018-05-13 | 3 |
7 | Java P6+ | 780 | 2019-01-19 | 3 |
8 | Data Analysis | 500 | 2019-07-12 | 1 |
10 | Object Oriented Design | 300 | 2020-08-08 | 4 |
12 | Dynamic Programming | 2000 | 2018-08-18 | 1 |
在运行你的 SQL 语句之后,表应返回:
name | student_count |
---|---|
Advanced Algorithms | 880 |
Artificial Intelligence | 1660 |
Dynamic Programming | 2000 |
样例 二
表内容: courses (课程表)
id | name | student_count | created_at | teacher_id |
---|---|---|---|---|
1 | Web | 800 | 2019-8-9 | 3 |
2 | Database | 1440 | 2018-10-8 | 1 |
3 | cloud computing | 850 | 2020-4-5 | 2 |
4 | C++ | 970 | 2020-5-28 | 4 |
5 | virtual reality | 970 | 2020-11-21 | 4 |
在运行你的 SQL 语句之后,表应返回:
name | student_count |
---|---|
Web | 800 |
Database | 1440 |
cloud computing | 850 |
C++ | 970 |
virtual reality | 970 |
样例二中教师
id
为 4 的教师的两门课程学生数相等且最大,所以两门课都返回
题解
首先根据使用group by 按照老师进行分组。然后从分组中select出老师id和最大学生数量,然后根据教师id和学生数量在不在找到的分组中,获取到最终的数据。
select name,
student_count student_count
from courses
where (teacher_id,student_count) in(
select teacher_id,max(student_count) from courses group by teacher_id
)
【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
评论(0)