Предположим, у меня есть 3 таблицы, и я не могу изменить любой DDLЧастичное Pivoting в PostgreSQL или Rails
Class
id: integer
name: string
и
Student
id: integer
name: string
class_id: integer //Foreign key to Class table
и
Score
id: integer
student_id: integer //Foreign key to Student table
subject: string //String enum of "Math", "Physics", "Chemistry"
score: float
Кроме того, предположим, что строка перечисления всегда будет исправлена, заполненной только одним из трех возможных значений.
И мне нужен полученный запрос, как это student_id | student_name | class_name | math | physics | chemistry
где математика поле средний балл по предмету «Математика», физика поле средний балл «Физика» и химия поле средний балл «Химии "субъект студента с id student_id.
Я знаю, что могу обрабатывать его в Rails ActiveRecord::Base
, но даже используя include, я получаю много запросов.
Как я могу сгенерировать необходимый результат с использованием только одного запроса?