2016-06-28 3 views
2

rails 콘솔에서 실행하려고하는 매우 간단한 SQL 쿼리가 있습니다.RAW 응용 프로그램에서 raw pg GROUP BY 쿼리

SELECT name, manual_score FROM objectives GROUP BY manual_score 

하지만 오류가 발생합니다 : 나는 열이있는 테이블 이름을 앞에 붙이는 시도했지만 오류가 남아

ActiveRecord::StatementInvalid: PG::GroupingError: ERROR: column "objectives.name" must appear in the GROUP BY clause or be used in an aggregate function 

합니다. 어떤 도움이라도 appericiated 것입니다. 감사!

답변

2

"그룹화되지 않은"열을 나열하는 것이 문제입니다. nameGROUP BY에 추가하거나 선택에서 제거해야합니다.

SELECT name, manual_score FROM objectives GROUP BY name, manual_score 
-- OR 
SELECT manual_score FROM objectives GROUP BY manual_score 
-- OR 
SELECT COUNT(name), manual_score FROM objectives GROUP BY manual_score 

왜 당신이 당신의 group by에 열을 추가하거나 집계 함수를 사용해야합니까? 이제

name  | manual_score 
one  | 1 
two  | 1 
three  | 2 

, manual_score으로 그룹 요소를 시도하고 manual_score=1에 해당 name 열을 표시하는 방법을 생각한다 : 상상 다음과 같은 데이터를 가지고있다.

+0

이 작품들 !! 빠른 응답과 설명에 감사드립니다. – titan