关于数据库查询
程序员文章站
2022-04-05 17:11:15
...
Student表
id | student_id | sex | name |
---|---|---|---|
1 | 1000 | 男 | 慕一春0 |
2 | 1001 | 男 | 慕一春1 |
3 | 1002 | 男 | 慕一春2 |
4 | 1003 | 男 | 慕一春3 |
Grade表
id | student_id | grade | course |
---|---|---|---|
1 | 1000 | 100 | 语文 |
2 | 1000 | 100 | 数学 |
3 | 1000 | 100 | 英语 |
4 | 1001 | 1 | 语文 |
5 | 1002 | 500 | 英语 |
6 | 1003 | 22 | 数学 |
- 查询总分成绩排名前三的学生信息。
select DISTINCT id,Student.student_id,sex,name,t.sum from Student , (select student_id,SUM(grade) as sum from Grade Group By `student_id` ORDER BY sum DESC limit 3) as t where Student.student_id = t.student_id
查询结果:
思路:多重嵌套的方式直接写了。有时间遇到后再优化。
Ex: having 一般用于分组后再进行过滤如:每个数据大于、小于或等于某一值。
上一篇: 文科生的SQL初体验之聚合函数与开窗函数