【快手】各年级学生总分排名Top3
聚合函数GROUP BY窗口函数面试真题
题目描述
来源:快手数据研发二面
给定一张 student_scores 表:
id: 记录IDgrade: 年级student_name: 学生姓名subject: 科目score: 成绩
请编写 SQL 查询,计算每个年级每个学生的总分,找出各年级总分排名前3的学生。按年级升序、总分降序排列。
期望输出列
| 列名 | 说明 |
|---|---|
| grade | 年级 |
| student_name | 学生姓名 |
| total_score | 总分 |
| rk | 排名 |
数据样例
| idPKINTEGER | gradeTEXT | student_nameTEXT | subjectTEXT | scoreINTEGER |
|---|---|---|---|---|
| 1 | 高一 | 张三 | 数学 | 95 |
| 2 | 高一 | 李四 | 数学 | 88 |
| 3 | 高一 | 王五 | 数学 | 92 |
| 4 | 高一 | 赵六 | 数学 | 88 |
| 5 | 高一 | 钱七 | 数学 | 78 |
| 6 | 高一 | 张三 | 英语 | 85 |
| 7 | 高一 | 李四 | 英语 | 92 |
| 8 | 高一 | 王五 | 英语 | 78 |
输入数据显示 8 / 17 行
SQL 编辑器正在保存草稿...
Ctrl + Enter 运行
正在加载 SQL 编辑器...
运行你的 SQL 查询后,结果将显示在这里