后端岗位面试题更新 2026-08-05

一张表存好几科的成绩,字段为 id、sid(学号)、cid(课程id)、score(成绩),怎么用 SQL 把每一科的前三名筛选出来?

凌志软件后端开发编码实现问题拆解技术原理SQL

考察说明

考察窗口函数、分组排名以及 SQL 查询设计能力

回答思路

  1. 能识别使用窗口函数 ROW_NUMBER 或 RANK 按课程分组排名
  2. 正确处理并列名次的场景,决定用 RANK、DENSE_RANK 还是 ROW_NUMBER
  3. 能写出完整的查询语句并在外层过滤排名不大于三
  4. 能解释窗口函数的执行逻辑和替代方案,如自连接或用户变量
  5. 注意性能与可读性,必要时说明索引建议
本题已收录答题指导

本题附完整参考答案与评分标准

登录后可查看结构化答题指导;也可以直接开一场模拟面试,AI 面试官用本题实时追问并给出评分。