1. 概述

按照成绩表,取出每个科目前三的分数。

2. 设计

题目需要根据科目和成绩聚合再获取得到前三成绩,是挺有意思的。因此在取数据时,需要根据科目关联,再按照成绩大小比较,取出前三。

  1. SELECT
  2. *
  3. FROM
  4. tbl_student_grade a
  5. WHERE
  6. ( SELECT count(1)
  7. FROM tbl_student_grade
  8. WHERE sub_id = a.sub_id AND grade >= a.grade
  9. ) <= 2;