MySQL과 달리 PostgreSQL은 집계 함수를 사용할 때 group by
절에 선택된 모든 필드를 나열해야한다는 것을 알고 있습니다.PostgreSQL에서 로딩 및 그룹화하기
Transaction.select('sum(amount), category_id').group('category_id')
충분합니다. 하지만 열렬한 연결을 시도 할 때 (예 :
Transaction.select('sum(amount), categories.name').includes(:category).group('categories.name')
당신이 GROUP BY 절에서 두 모델의 모든 필드를 포함하지 않았기 때문에 작동하지 않습니다.
모델의 모든 입력란을 나열하지 않아도되는 방법이 있습니까? 아니면 N + 1 검색어를 수락 할 필요가 있습니까? (필자가 2 개만 필요로 할 때 목록 30 필드가 적합하지 않다고 생각합니다.)
모든 DBMS는 그룹의 모든 필드를 나열해야하며, MySQL은 예외입니다. 이 때문에 많은 버그가 발생합니다. –