Skip to content

Instantly share code, notes, and snippets.

@tehmoth
tehmoth / gist:6320577
Created August 23, 2013 15:24
window version
SELECT name, subject, grade FROM
(SELECT student_id, subject_id, grade, RANK() OVER (PARTITION BY student_id ORDER BY grade)
FROM exams)
AS grades, students, subjects
WHERE grades.subject_id = subjects.subject_id AND grades.student_id = students.student_id
AND rank = 1 ORDER BY grade;
@tehmoth
tehmoth / gist:6320512
Created August 23, 2013 15:18
WINDOW version
SELECT name, subject, grade FROM
(SELECT students.name, subjects.subject, grade, RANK() over (PARTITION BY students.student_id ORDER BY grade) rank
FROM exams, students, subjects
WHERE exams.subject_id = subjects.subject_id AND exams.student_id = students.student_id) AS grades
WHERE rank = 1;