2
내가 3 개 테이블이 있다고 가정하고, 나는부분 피봇 팅
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
, 가정 모든 DDL을 변경할 수 없습니다 문자열 열거 형은 항상 올바른 것으로 세 가지 가능한 값 중 하나만 채워집니다.
그리고이 같은 결과 쿼리가 필요 student_id | student_name | class_name | math | physics | chemistry
수학 필드는 "수학"피사체의 평균 점수입니다 는 물리학 필드는 "물리학"대상의 평균 점수이며, 화학 필드는 "화학의 평균 점수입니다 "학생 ID가 학생 ID입니다.
내가 레일 ActiveRecord::Base
에서 처리 할 수 있다는 것을 알고 있지만 include를 사용하더라도 많은 쿼리를 사용하게됩니다.
하나의 쿼리 만 사용하여 필요한 출력을 생성하려면 어떻게해야합니까? 당신은이 작업을 수행 할 수 있습니다