У меня есть две таблицы:Select * Последнее * Оценка данных для каждого студента
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
Любая помощь была бы принята с благодарностью, спасибо.
EDIT: ДОБАВЛЕНО РЕШЕНИЕ 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