我有兩個表:選擇*最新*等級信息爲每一個學生
STUDENT GRADES
---------- ----------
id id
name person_id
address date
city test_name
phone grade
每個學生都會有在成績表中的幾個條目。我想知道是否可以使用SQL(Postgres)來選擇所有學生以及他們的最新成績信息。我基本上需要一個如下所示的結果表,其中date,test_name和grade用於最新結果(按日期)。
LATEST_GRADES
----------------
id
name
address
city
phone
grade_id
date
test_name
grade
任何幫助將不勝感激,謝謝。
編輯:加入溶液QUERY
SELECT * FROM
students s
JOIN (SELECT DISTINCT ON (person_id) person_id, date, test_name, grade
FROM grades
ORDER BY person_id, date DESC) g
ON s.id = g.person_id;
這一個實際上對我很好。我在問題結尾處發佈瞭解決方案查詢。其他一些雙查詢解決方案花費了大約20多秒。嘗試DISTINCT ON方法後,我把它降到3+秒以上。 我的'成績表'實際上有50,000多行。 – PKKid 2010-01-28 21:27:46