我必须编写一个查询并优化它的性能,但不确定如何正确编写它。这是表结构。
"Subject Id"
"Class"
"Student"
"Marks"
"Date"
日期是添加学生记录的时间。该表是非规范化的。所以我想知道如何从这个表中获取给定主题 ID 的学生列表、他们的班级和他们的最新分数(即最后添加的分数),这样行就不会重复。谁能建议这个查询?
这至少应该部分实现:
SELECT t.Student, t.Class, t.Marks
FROM tableName t
INNER JOIN (
SELECT Student, max(Date) as MaxDate
FROM tableName)
tm ON t.Student=tm.Student AND t.Date=tm.MaDate)
WHERE "Subject ID"=givenSubjectID
答案从这里采纳。